shell: Don't focus to background, screensaver or input_panel surfaces
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 21 Jun 2012 20:49:42 +0000 (16:49 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 21 Jun 2012 20:49:42 +0000 (16:49 -0400)
src/shell.c

index d8a508e..80fdf72 100644 (file)
@@ -2488,6 +2488,15 @@ click_to_activate_binding(struct wl_seat *seat, uint32_t time, uint32_t button,
        if (is_black_surface(focus, &upper))
                focus = upper;
 
+       switch (get_shell_surface_type(focus)) {
+               case SHELL_SURFACE_BACKGROUND:
+               case SHELL_SURFACE_SCREENSAVER:
+               case SHELL_SURFACE_INPUT_PANEL:
+                       return;
+               default:
+                       break;
+       }
+
        if (seat->pointer->grab == &seat->pointer->default_grab)
                activate(shell, focus, ws);
 }