fixed when views dont have names.

This commit is contained in:
taiyu 2015-08-17 10:02:09 -07:00
parent b48e8d1b17
commit f832c02065
2 changed files with 10 additions and 7 deletions

View file

@ -54,9 +54,7 @@ swayc_t *new_output(wlc_handle handle) {
output->width = size->w; output->width = size->w;
output->height = size->h; output->height = size->h;
output->handle = handle; output->handle = handle;
if (name) { output->name = name ? strdup(name) : NULL;
output->name = strdup(name);
}
add_child(&root_container, output); add_child(&root_container, output);
@ -132,7 +130,7 @@ swayc_t *new_view(swayc_t *sibling, wlc_handle handle) {
(unsigned int)handle, title, sibling, sibling?sibling->type:0); (unsigned int)handle, title, sibling, sibling?sibling->type:0);
//Setup values //Setup values
view->handle = handle; view->handle = handle;
view->name = strdup(title); view->name = title ? strdup(title) : NULL;
view->visible = true; view->visible = true;
view->desired_width = -1; view->desired_width = -1;
@ -159,7 +157,7 @@ swayc_t *new_floating_view(wlc_handle handle) {
(unsigned int)handle, title); (unsigned int)handle, title);
//Setup values //Setup values
view->handle = handle; view->handle = handle;
view->name = strdup(title); view->name = title ? strdup(title) : NULL;
view->visible = true; view->visible = true;
// Set the geometry of the floating view // Set the geometry of the floating view

View file

@ -104,6 +104,7 @@ static bool handle_view_created(wlc_handle handle) {
// Float popups // Float popups
if (type & WLC_BIT_POPUP) { if (type & WLC_BIT_POPUP) {
swayc_t *view = new_floating_view(handle); swayc_t *view = new_floating_view(handle);
wlc_view_set_state(handle, WLC_BIT_MAXIMIZED, false);
focus_view(view); focus_view(view);
arrange_windows(active_workspace, -1, -1); arrange_windows(active_workspace, -1, -1);
} }
@ -143,6 +144,10 @@ static void handle_view_destroyed(wlc_handle handle) {
arrange_windows(active_workspace, -1, -1); arrange_windows(active_workspace, -1, -1);
return; return;
} }
if (type & WLC_BIT_POPUP) {
swayc_t *view = get_swayc_for_handle(handle, &root_container);
destroy_view(view);
}
} }
swayc_t *view = get_swayc_for_handle(handle, &root_container); swayc_t *view = get_swayc_for_handle(handle, &root_container);
swayc_t *parent; swayc_t *parent;