/* update the focus lists */
focus_order_remove(self);
+ /* don't leave an invalid focus_client */
+ if (self == focus_client)
+ focus_client = NULL;
client_list = g_list_remove(client_list, self);
stacking_remove(self);
if (settings->max_vert != -1)
self->max_vert = !!settings->max_vert;
if (settings->max_horz != -1)
- self->max_vert = !!settings->max_horz;
+ self->max_horz = !!settings->max_horz;
if (settings->fullscreen != -1)
self->fullscreen = !!settings->fullscreen;
self->desktop = screen_desktop;
}
}
- if (self->desktop != d) {
- /* set the desktop hint, to make sure that it always exists */
- PROP_SET32(self->window, net_wm_desktop, cardinal, self->desktop);
- }
}
static void client_get_layer(ObClient *self)
self->focus_notify = TRUE;
#ifdef SYNC
else if (proto[i] == prop_atoms.net_wm_sync_request)
- /* if this protocol is requested, then the resizing the
+ /* if this protocol is requested, then resizing the
window will be synchronized between the frame and the
client */
self->sync_request = TRUE;
self->area.x = x;
self->area.y = y;
+ /* set the desktop hint, to make sure that it always exists */
+ PROP_SET32(self->window, net_wm_desktop, cardinal, self->desktop);
+
/* these are in a carefully crafted order.. */
if (self->iconic) {