XSetWindowAttributes attrib;
focus_client = NULL;
- focus_cycle_popup = popup_new(TRUE);
attrib.override_redirect = TRUE;
focus_backup = XCreateWindow(ob_display, ob_root,
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);
}
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 */
frame_startup();
moveresize_startup();
- focus_startup();
screen_startup();
group_startup();
client_startup();
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);
}
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 */