From 0f677834e253dfd18a246c8811bf4a4e364d5e0e Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Fri, 1 Jun 2007 23:20:05 +0000 Subject: [PATCH] have stacking_restack_request return a bool that says if it did something with TopIf/BottomIf (other cases always return true) --- openbox/stacking.c | 12 ++++++++---- openbox/stacking.h | 8 +++++--- 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 -- 2.44.0