/* get and set application level settings */
settings = get_settings(self);
+ stacking_add(CLIENT_AS_WINDOW(self));
+ client_restore_session_stacking(self);
+
if (settings) {
/* Don't worry, we won't actually both shade and undecorate the
* window when push comes to shove. */
if (settings->fullscreen != -1)
client_fullscreen(self, !!settings->fullscreen, TRUE);
- if (settings->desktop < screen_num_desktops)
- client_set_desktop(self, settings->desktop, FALSE);
+ if (settings->desktop < screen_num_desktops
+ || settings->desktop == DESKTOP_ALL)
+ client_set_desktop(self, settings->desktop, TRUE);
if (settings->layer > -2 && settings->layer < 2)
client_set_layer(self, settings->layer);
}
- stacking_add(CLIENT_AS_WINDOW(self));
- client_restore_session_stacking(self);
-
/* focus the new window? */
if (ob_state() != OB_STATE_STARTING &&
(config_focus_new || client_search_focus_parent(self)) ||
void client_activate(ObClient *self, gboolean here)
{
- /* This check is for the client_list_menu trying to activate
- * a closed client. */
- if (!g_list_find(client_list, self)) return;
if (client_normal(self) && screen_showing_desktop)
screen_show_desktop(FALSE);
if (self->iconic)