]> git.sur5r.net Git - i3/i3/blobdiff - src/manage.c
use I3__FILE__ for DLOG, leave __FILE__ as is
[i3/i3] / src / manage.c
index a87807b429914db043143485b0d8f7a203a44047..1dc39b9eabe18a2c88acc5e5b29e252c281721bd 100644 (file)
@@ -1,8 +1,10 @@
+#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).
  *
@@ -47,7 +49,7 @@ void manage_existing_windows(xcb_window_t root) {
  * 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;
@@ -149,6 +151,7 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
 
     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,
@@ -216,7 +219,7 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
     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 */
@@ -286,7 +289,9 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
             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 {
@@ -320,7 +325,7 @@ void manage_window(xcb_window_t window, xcb_get_window_attributes_cookie_t cooki
         (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 &&