]> Dogcows Code - chaz/openbox/commitdiff
add client_raise and client_lower which just fire off actions
authorDana Jansens <danakj@orodu.net>
Fri, 26 Sep 2003 18:15:58 +0000 (18:15 +0000)
committerDana Jansens <danakj@orodu.net>
Fri, 26 Sep 2003 18:15:58 +0000 (18:15 +0000)
openbox/client.c
openbox/client.h

index 6de12d19f855c4a99215d338f6562b0d381234d1..bc218af071f2df049e9193c77c7bdd2ae8ae8546 100644 (file)
@@ -2289,7 +2289,7 @@ void client_set_desktop_recursive(ObClient *self,
             client_showhide(self);
         /* raise if it was not already on the desktop */
         if (old != DESKTOP_ALL)
-            action_run_string("Raise", self);
+            client_raise(self);
         screen_update_areas();
 
         /* add to the new desktop(s) */
@@ -2602,7 +2602,7 @@ void client_activate(ObClient *self, gboolean here)
     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)
@@ -2623,6 +2623,16 @@ void client_activate(ObClient *self, gboolean 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);
 }
 
index 0c523debeabdf8f4490fdbfa4806cdd6f878f4d3..ed664c32efb9541060fce8f447e9e5cb4fd12aaa 100644 (file)
@@ -451,6 +451,26 @@ void client_activate(ObClient *self, gboolean here);
 /*! Calculates the stacking layer for the client window */
 void client_calc_layer(ObClient *self);
 
+/*! Raises the client to the top of its stacking layer
+  Normally actions call to the client_* functions to make stuff go, but this
+  one is an exception. It just fires off an action, which will be queued.
+  This is because stacking order rules can be changed by focus state, and so
+  any time focus changes you have to wait for it to complete before you can
+  properly restart windows. As such, this only queues an action for later
+  execution, once the focus change has gone through.
+*/
+void client_raise(ObClient *self);
+
+/*! Lowers the client to the bottom of its stacking layer
+  Normally actions call to the client_* functions to make stuff go, but this
+  one is an exception. It just fires off an action, which will be queued.
+  This is because stacking order rules can be changed by focus state, and so
+  any time focus changes you have to wait for it to complete before you can
+  properly restart windows. As such, this only queues an action for later
+  execution, once the focus change has gone through.
+*/
+void client_lower(ObClient *self);
+
 /*! Updates the window's transient status, and any parents of it */
 void client_update_transient_for(ObClient *self);
 /*! Update the protocols that the window supports and adjusts things if they
This page took 0.029036 seconds and 4 git commands to generate.