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. */
+ client_raise(self);
+}
+
+void client_raise(ObClient *self)
+{
+ action_run_string("Raise", self);
+}
+
+void client_lower(ObClient *self)
+{
action_run_string("Raise", self);
}