add some comments and asserts to make sure I don't ever add this bug again
authorDana Jansens <danakj@orodu.net>
Sun, 29 Jun 2003 17:29:10 +0000 (17:29 +0000)
committerDana Jansens <danakj@orodu.net>
Sun, 29 Jun 2003 17:29:10 +0000 (17:29 +0000)
openbox/focus.c
openbox/openbox.c
openbox/stacking.c

index ad18d97..b8477bc 100644 (file)
@@ -34,7 +34,6 @@ void focus_startup()
     XSetWindowAttributes attrib;
 
     focus_client = NULL;
-    focus_cycle_popup = popup_new(TRUE);
 
     attrib.override_redirect = TRUE;
     focus_backup = XCreateWindow(ob_display, ob_root,
@@ -43,6 +42,10 @@ void focus_startup()
                                  CWOverrideRedirect, &attrib);
     XMapRaised(ob_display, focus_backup);
 
+    /* do this *after* focus_backup is created, since it is used for
+       stacking */
+    focus_cycle_popup = popup_new(TRUE);
+
     /* start with nothing focused */
     focus_set_client(NULL);
 }
index d9ce9a5..a2f9688 100644 (file)
@@ -197,6 +197,9 @@ int main(int argc, char **argv)
        timer_startup();
        event_startup();
         grab_startup();
+        /* focus_backup is used for stacking, so this needs to come before
+           anything that calls stacking_add */
+       focus_startup();
         window_startup();
         plugin_startup();
         /* load the plugins specified in the pluginrc */
@@ -218,7 +221,6 @@ int main(int argc, char **argv)
 
         frame_startup();
         moveresize_startup();
-       focus_startup();
        screen_startup();
         group_startup();
        client_startup();
index 2fa4b2e..643b311 100644 (file)
@@ -61,6 +61,8 @@ static void do_restack(GList *wins, GList *before)
 
     for (i = 1, it = wins; it; ++i, it = g_list_next(it)) {
         win[i] = window_top(it->data);
+        g_assert(win[i] != None); /* better not call stacking shit before
+                                     setting your top level window value */
         stacking_list = g_list_insert_before(stacking_list, before, it->data);
     }
 
@@ -253,7 +255,10 @@ void stacking_lower(ObWindow *window)
 void stacking_add(ObWindow *win)
 {
     StackLayer l;
-    GList *wins, *it;
+    GList *wins;
+
+    g_assert(focus_backup != None); /* make sure I dont break this in the
+                                       future */
 
     l = window_layer(win);
     wins = g_list_append(NULL, win); /* list of 1 element */