shell: Don't focus to background, screensaver or input_panel surfaces
diff --git a/src/shell.c b/src/shell.c
index d8a508e..80fdf72 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -2488,6 +2488,15 @@
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);
}