+#undef I3__FILE__
+#define I3__FILE__ "manage.c"
/*
* vim:ts=4:sw=4:expandtab
*
* i3 - an improved dynamic tiling window manager
- * © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
+ * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE)
*
* manage.c: Initially managing new windows (or existing ones on restart).
*
* side-effects which are to be expected when continuing to run i3.
*
*/
-void restore_geometry() {
+void restore_geometry(void) {
DLOG("Restoring geometry\n");
Con *con;
i3Window *cwindow = scalloc(sizeof(i3Window));
cwindow->id = window;
+ cwindow->depth = get_visual_depth(attr->visual);
/* We need to grab the mouse buttons for click to focus */
xcb_grab_button(conn, false, window, XCB_EVENT_MASK_BUTTON_PRESS,
DLOG("Initial geometry: (%d, %d, %d, %d)\n", geom->x, geom->y, geom->width, geom->height);
Con *nc = NULL;
- Match *match;
+ Match *match = NULL;
Assignment *assignment;
/* TODO: two matches for one container */
Con *target_output = con_get_output(ws);
if (workspace_is_visible(ws) && current_output == target_output) {
- con_focus(nc);
+ if (!match || !match->restart_mode) {
+ con_focus(nc);
+ } else DLOG("not focusing, matched with restart_mode == true\n");
} else DLOG("workspace not visible, not focusing\n");
} else DLOG("dock, not focusing\n");
} else {
(cwindow->leader != XCB_NONE &&
cwindow->leader != cwindow->id &&
con_by_window_id(cwindow->leader) != NULL)) {
- LOG("This window is transiert for another window, setting floating\n");
+ LOG("This window is transient for another window, setting floating\n");
want_floating = true;
if (config.popup_during_fullscreen == PDF_LEAVE_FULLSCREEN &&