all repos — openbox @ 1cacfa85d0e74386d071de0d910ab93e69ae40d3

openbox fork - make it a bit more like ryudo

add some comments and asserts to make sure I don't ever add this bug again
Dana Jansens danakj@orodu.net
commit

1cacfa85d0e74386d071de0d910ab93e69ae40d3

parent

dd80df31c4ed096e79b45661d62e369df653f76b

3 files changed, 13 insertions(+), 3 deletions(-)

jump to
M openbox/focus.copenbox/focus.c

@@ -34,7 +34,6 @@ mapped. */

XSetWindowAttributes attrib; focus_client = NULL; - focus_cycle_popup = popup_new(TRUE); attrib.override_redirect = TRUE; focus_backup = XCreateWindow(ob_display, ob_root,

@@ -42,6 +41,10 @@ -100, -100, 1, 1, 0,

CopyFromParent, InputOutput, CopyFromParent, 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);
M openbox/openbox.copenbox/openbox.c

@@ -197,6 +197,9 @@ in this group */

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 @@ exit_with_error("Unable to load a theme.");

frame_startup(); moveresize_startup(); - focus_startup(); screen_startup(); group_startup(); client_startup();
M openbox/stacking.copenbox/stacking.c

@@ -61,6 +61,8 @@ win[0] = window_top(g_list_previous(before)->data);

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_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 */