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);
@ -95,7 +93,7 @@ swayc_t *new_container(swayc_t *child, enum swayc_layouts layout) {
cont->layout = layout; cont->layout = layout;
cont->width = child->width; cont->width = child->width;
cont->height = child->height; cont->height = child->height;
cont->x = child->x; cont->x = child->x;
cont->y = child->y; cont->y = child->y;
cont->visible = child->visible; cont->visible = child->visible;
@ -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;