summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-09-26 18:15:58 +0000
committerDana Jansens <danakj@orodu.net>2003-09-26 18:15:58 +0000
commitdfd524926e5d8f0b9cdb120ce1d943a7f8b1af3a (patch)
treee5f3c1bf45620540cf0c5b8b5918187c9da45537 /openbox
parent411cc1d1d9e0c7ad07fe6bce548ccf101a2f4c7a (diff)
add client_raise and client_lower which just fire off actions
Diffstat (limited to 'openbox')
-rw-r--r--openbox/client.c14
-rw-r--r--openbox/client.h20
2 files changed, 32 insertions, 2 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 6de12d19..bc218af0 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -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);
}
diff --git a/openbox/client.h b/openbox/client.h
index 0c523deb..ed664c32 100644
--- a/openbox/client.h
+++ b/openbox/client.h
@@ -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