diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-09-26 18:15:58 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-09-26 18:15:58 +0000 |
| commit | dfd524926e5d8f0b9cdb120ce1d943a7f8b1af3a (patch) | |
| tree | e5f3c1bf45620540cf0c5b8b5918187c9da45537 /openbox | |
| parent | 411cc1d1d9e0c7ad07fe6bce548ccf101a2f4c7a (diff) | |
add client_raise and client_lower which just fire off actions
Diffstat (limited to 'openbox')
| -rw-r--r-- | openbox/client.c | 14 | ||||
| -rw-r--r-- | openbox/client.h | 20 |
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 |
