add client_raise and client_lower which just fire off actions

This commit is contained in:
Dana Jansens 2003-09-26 18:15:58 +00:00
parent 411cc1d1d9
commit dfd524926e
2 changed files with 32 additions and 2 deletions

View file

@ -2289,7 +2289,7 @@ void client_set_desktop_recursive(ObClient *self,
client_showhide(self); client_showhide(self);
/* raise if it was not already on the desktop */ /* raise if it was not already on the desktop */
if (old != DESKTOP_ALL) if (old != DESKTOP_ALL)
action_run_string("Raise", self); client_raise(self);
screen_update_areas(); screen_update_areas();
/* add to the new desktop(s) */ /* add to the new desktop(s) */
@ -2602,7 +2602,7 @@ void client_activate(ObClient *self, gboolean here)
if (client_normal(self) && screen_showing_desktop) if (client_normal(self) && screen_showing_desktop)
screen_show_desktop(FALSE); screen_show_desktop(FALSE);
if (self->iconic) if (self->iconic)
client_iconify(self, FALSE, FALSE); client_iconify(self, FALSE, here);
if (self->desktop != DESKTOP_ALL && if (self->desktop != DESKTOP_ALL &&
self->desktop != screen_desktop) { self->desktop != screen_desktop) {
if (here) 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 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 this or else the raise wont be able to raise above the to-lose-focus
fullscreen window. */ 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); action_run_string("Raise", self);
} }

View file

@ -451,6 +451,26 @@ void client_activate(ObClient *self, gboolean here);
/*! Calculates the stacking layer for the client window */ /*! Calculates the stacking layer for the client window */
void client_calc_layer(ObClient *self); 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 */ /*! Updates the window's transient status, and any parents of it */
void client_update_transient_for(ObClient *self); void client_update_transient_for(ObClient *self);
/*! Update the protocols that the window supports and adjusts things if they /*! Update the protocols that the window supports and adjusts things if they