client_showhide(self);
/* raise if it was not already on the desktop */
if (old != DESKTOP_ALL)
- stacking_raise(CLIENT_AS_WINDOW(self));
+ client_raise(self);
screen_update_areas();
/* add to the new desktop(s) */
ObClient *child;
/* if we have a modal child, then focus it, not us */
- child = client_search_modal_child(self);
+ child = client_search_modal_child(client_search_top_transient(self));
if (child) return child;
return self;
}
if (client_normal(self) && screen_showing_desktop)
screen_show_desktop(FALSE);
if (self->iconic)
- client_iconify(self, FALSE, FALSE);
+ client_iconify(self, FALSE, here);
if (self->desktop != DESKTOP_ALL &&
self->desktop != screen_desktop) {
if (here)
about raising the window. when a fullscreen window loses focus, we need
this or else the raise wont be able to raise above the to-lose-focus
fullscreen window. */
- {
- ObAction *a;
- GSList *l = NULL;
+ client_raise(self);
+}
- a = action_from_string("Raise", OB_USER_ACTION_NONE);
- g_assert(a);
- l = g_slist_append(NULL, a);
+void client_raise(ObClient *self)
+{
+ action_run_string("Raise", self);
+}
- action_run(l, self, 0);
- }
+void client_lower(ObClient *self)
+{
+ action_run_string("Raise", self);
}
gboolean client_focused(ObClient *self)