set the desktop hint if the desktop is changed by the session code

This commit is contained in:
Dana Jansens 2003-07-31 09:02:56 +00:00
parent d7f3d16fb7
commit c8fa3a6028

View file

@ -237,9 +237,6 @@ void client_manage(Window window)
client_get_all(self);
client_restore_session_state(self);
/* set the desktop hint, to make sure that it always exists */
PROP_SET32(self->window, net_wm_desktop, cardinal, self->desktop);
client_change_state(self);
/* remove the client's border (and adjust re gravity) */
@ -472,10 +469,13 @@ static void client_restore_session_state(ObClient *self)
if (!(s)) return;
RECT_SET(self->area, s->x, s->y, s->w, s->h);
XResizeWindow(ob_display, self->window, s->w, s->h);
self->positioned = TRUE;
XResizeWindow(ob_display, self->window, s->w, s->h);
self->desktop = s->desktop == DESKTOP_ALL ? s->desktop :
MIN(screen_num_desktops - 1, s->desktop);
PROP_SET32(self->window, net_wm_desktop, cardinal, self->desktop);
self->shaded = s->shaded;
self->iconic = s->iconic;
self->skip_pager = s->skip_pager;
@ -704,6 +704,10 @@ static void client_get_desktop(ObClient *self)
/* defaults to the current desktop */
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_state(ObClient *self)