]> git.sur5r.net Git - i3/i3/commitdiff
Bugfix: don’t focus dock clients (Thanks mseed, mist)
authorMichael Stapelberg <michael@stapelberg.de>
Thu, 3 Mar 2011 12:59:42 +0000 (13:59 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 3 Mar 2011 12:59:42 +0000 (13:59 +0100)
Fixes #321 and #323

src/click.c
src/handlers.c

index 8617cf0bb523d4497adfc287354678a636cad598..51472954ec3c6801f84d6f054c05bb2b9a8009b0 100644 (file)
@@ -307,6 +307,13 @@ int handle_button_press(void *ignored, xcb_connection_t *conn, xcb_button_press_
         }
     }
 
+    if ((clicked_into ? clicked_into->parent->type : con->parent->type) == CT_DOCKAREA) {
+        DLOG("Not handling, this client is inside a dockarea\n");
+        xcb_allow_events(conn, XCB_ALLOW_REPLAY_POINTER, event->time);
+        xcb_flush(conn);
+        return 0;
+    }
+
     /* click to focus, either on the clicked window or its child if thas was a
      * click into a child decoration */
     con_focus((clicked_into ? clicked_into : con));
index 23e9c17a555fe30a3ab1a2ec0a55009090cb15b9..35d8367aae34c987bea2ecff0e2df621b1d027e7 100644 (file)
@@ -181,6 +181,11 @@ int handle_enter_notify(void *ignored, xcb_connection_t *conn,
         return 1;
     }
 
+    if (con->parent->type == CT_DOCKAREA) {
+        DLOG("Ignoring, this is a dock client\n");
+        return 1;
+    }
+
     /* see if the user entered the window on a certain window decoration */
     int layout = (enter_child ? con->parent->layout : con->layout);
     Con *child;