From 47529e777f5d0ac222b6ed06c9644c3909bd6479 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Fri, 1 Jun 2007 23:39:52 +0000 Subject: [PATCH] revert 7246 and simplify action_raiselower a bit, turns out 7246 wasn't needed for that after all --- openbox/action.c | 27 +++------------------------ openbox/stacking.c | 10 +++------- openbox/stacking.h | 8 +++----- 3 files changed, 9 insertions(+), 36 deletions(-) diff --git a/openbox/action.c b/openbox/action.c index a01f4d06..39c1169b 100644 --- a/openbox/action.c +++ b/openbox/action.c @@ -1329,31 +1329,10 @@ void action_focus_order_to_bottom(union ActionData *data) void action_raiselower(union ActionData *data) { ObClient *c = data->client.any.c; - GList *it; - gboolean raise = FALSE; - - for (it = stacking_list; it; it = g_list_next(it)) { - if (WINDOW_IS_CLIENT(it->data)) { - ObClient *cit = it->data; - - if (cit == c) break; - if (client_normal(cit) == client_normal(c) && - cit->layer == c->layer && - cit->frame->visible && - !client_search_transient(c, cit)) - { - if (RECT_INTERSECTS_RECT(cit->frame->area, c->frame->area)) { - raise = TRUE; - break; - } - } - } - } - if (raise) - action_raise(data); - else - action_lower(data); + client_action_start(data); + stacking_restack_request(c, NULL, Opposite, FALSE); + client_action_end(data); } void action_raise(union ActionData *data) diff --git a/openbox/stacking.c b/openbox/stacking.c index 481c14bd..e323b569 100644 --- a/openbox/stacking.c +++ b/openbox/stacking.c @@ -545,8 +545,8 @@ static gboolean stacking_occludes(ObClient *client, ObClient *sibling) return occludes; } -gboolean stacking_restack_request(ObClient *client, ObClient *sibling, - gint detail, gboolean activate) +void stacking_restack_request(ObClient *client, ObClient *sibling, + gint detail, gboolean activate) { switch (detail) { case Below: @@ -563,8 +563,6 @@ gboolean 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", @@ -586,8 +584,7 @@ gboolean 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 " @@ -605,5 +602,4 @@ gboolean 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 4a81617d..eb638734 100644 --- a/openbox/stacking.h +++ b/openbox/stacking.h @@ -67,13 +67,11 @@ 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. */ -gboolean stacking_restack_request(struct _ObClient *client, - struct _ObClient *sibling, - gint detail, gboolean activate); +void stacking_restack_request(struct _ObClient *client, + struct _ObClient *sibling, + gint detail, gboolean activate); #endif -- 2.44.0