revert 7246 and simplify action_raiselower a bit, turns out 7246 wasn't needed for...
authorMikael Magnusson <mikachu@comhem.se>
Fri, 1 Jun 2007 23:39:52 +0000 (23:39 +0000)
committerMikael Magnusson <mikachu@comhem.se>
Fri, 1 Jun 2007 23:39:52 +0000 (23:39 +0000)
openbox/action.c
openbox/stacking.c
openbox/stacking.h

index a01f4d0..39c1169 100644 (file)
@@ -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)
index 481c14b..e323b56 100644 (file)
@@ -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;
 }
index 4a81617..eb63873 100644 (file)
@@ -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