summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorMikael Magnusson <mikachu@comhem.se>2007-06-01 23:20:05 +0000
committerMikael Magnusson <mikachu@comhem.se>2007-06-01 23:20:05 +0000
commit0f677834e253dfd18a246c8811bf4a4e364d5e0e (patch)
tree42959046a60779dcf0ce9c26641383d9072d17a0 /openbox
parent062d4d435dec216557708cdf6c61ec26f0b66719 (diff)
have stacking_restack_request return a bool that says if it did something with TopIf/BottomIf (other cases always return true)
Diffstat (limited to 'openbox')
-rw-r--r--openbox/stacking.c12
-rw-r--r--openbox/stacking.h8
2 files changed, 13 insertions, 7 deletions
diff --git a/openbox/stacking.c b/openbox/stacking.c
index ce3befca..481c14bd 100644
--- a/openbox/stacking.c
+++ b/openbox/stacking.c
@@ -506,7 +506,7 @@ static gboolean stacking_occluded(ObClient *client, ObClient *sibling)
return occluded;
}
-/*! Returns TRUE if client is occludes the sibling. If sibling is NULL it tries
+/*! Returns TRUE if client occludes the sibling. If sibling is NULL it tries
against all other clients.
*/
static gboolean stacking_occludes(ObClient *client, ObClient *sibling)
@@ -545,8 +545,8 @@ static gboolean stacking_occludes(ObClient *client, ObClient *sibling)
return occludes;
}
-void stacking_restack_request(ObClient *client, ObClient *sibling,
- gint detail, gboolean activate)
+gboolean stacking_restack_request(ObClient *client, ObClient *sibling,
+ gint detail, gboolean activate)
{
switch (detail) {
case Below:
@@ -563,6 +563,8 @@ void stacking_restack_request(ObClient *client, ObClient *sibling,
lower it to the bottom */
if (stacking_occludes(client, sibling))
stacking_lower(CLIENT_AS_WINDOW(client));
+ else
+ return FALSE;
break;
case Above:
ob_debug("Restack request Above for client %s sibling %s\n",
@@ -584,7 +586,8 @@ void stacking_restack_request(ObClient *client, ObClient *sibling,
client_activate(client, FALSE, TRUE);
else
stacking_raise(CLIENT_AS_WINDOW(client));
- }
+ } else
+ return FALSE;
break;
case Opposite:
ob_debug("Restack request Opposite for client %s sibling "
@@ -602,4 +605,5 @@ void stacking_restack_request(ObClient *client, ObClient *sibling,
stacking_lower(CLIENT_AS_WINDOW(client));
break;
}
+ return TRUE;
}
diff --git a/openbox/stacking.h b/openbox/stacking.h
index eb638734..4a81617d 100644
--- a/openbox/stacking.h
+++ b/openbox/stacking.h
@@ -67,11 +67,13 @@ void stacking_below(ObWindow *window, ObWindow *below);
@param detail One of Above, Below, TopIf, BottomIf, Opposite
@param activate If TRUE, and if the window is going to be raised, it will
be activated instead
+ @return false if given TopIf or BottomIf and no action was taken,
+ true otherwise
See http://tronche.com/gui/x/xlib/window/configure.html for details on
how each detail works with and without a sibling.
*/
-void stacking_restack_request(struct _ObClient *client,
- struct _ObClient *sibling,
- gint detail, gboolean activate);
+gboolean stacking_restack_request(struct _ObClient *client,
+ struct _ObClient *sibling,
+ gint detail, gboolean activate);
#endif