]> Dogcows Code - chaz/openbox/blobdiff - openbox/stacking.c
make openbox use the obt prop.c/h stuff
[chaz/openbox] / openbox / stacking.c
index bb8975d40f71efd7bc2abf8a8d3fa3bb5e8178ce..a18eb29ead16e84055c84639fd1a45e3ce7a41f2 100644 (file)
@@ -18,7 +18,6 @@
 */
 
 #include "openbox.h"
-#include "prop.h"
 #include "screen.h"
 #include "focus.h"
 #include "client.h"
 #include "frame.h"
 #include "window.h"
 #include "debug.h"
+#include "obt/prop.h"
 
 GList  *stacking_list = NULL;
+/*! When true, stacking changes will not be reflected on the screen.  This is
+  to freeze the on-screen stacking order while a window is being temporarily
+  raised during focus cycling */
+static gboolean pause_changes = FALSE;
 
 void stacking_set_list(void)
 {
@@ -50,8 +54,8 @@ void stacking_set_list(void)
         }
     }
 
-    PROP_SETA32(RootWindow(ob_display, ob_screen),
-                net_client_list_stacking, window, (gulong*)windows, i);
+    OBT_PROP_SETA32(RootWindow(obt_display, ob_screen),
+                    NET_CLIENT_LIST_STACKING, WINDOW, (gulong*)windows, i);
 
     g_free(windows);
 }
@@ -99,7 +103,8 @@ static void do_restack(GList *wins, GList *before)
     }
 #endif
 
-    XRestackWindows(ob_display, win, i);
+    if (!pause_changes)
+        XRestackWindows(obt_display, win, i);
     g_free(win);
 
     stacking_set_list();
@@ -125,9 +130,11 @@ void stacking_temp_raise(ObWindow *window)
 
     win[1] = window_top(window);
     XRestackWindows(ob_display, win, 2);
+
+    pause_changes = TRUE;
 }
 
-void stacking_restore()
+void stacking_restore(void)
 {
     Window *win;
     GList *it;
@@ -139,6 +146,8 @@ void stacking_restore()
         win[i] = window_top(it->data);
     XRestackWindows(ob_display, win, i);
     g_free(win);
+
+    pause_changes = FALSE;
 }
 
 static void do_raise(GList *wins)
This page took 0.022447 seconds and 4 git commands to generate.