diff --git a/src/input/cursor.c b/src/input/cursor.c index fdaaa59c..e9ae9ad0 100644 --- a/src/input/cursor.c +++ b/src/input/cursor.c @@ -641,10 +641,15 @@ _cursor_update_focus(struct server *server) struct cursor_context ctx = get_cursor_context(server); if ((ctx.view || ctx.surface) && rc.focus_follow_mouse - && !rc.focus_follow_mouse_requires_movement) { + && !rc.focus_follow_mouse_requires_movement + && server->input_mode + != LAB_INPUT_STATE_WINDOW_SWITCHER) { /* * Always focus the surface below the cursor when * followMouse=yes and followMouseRequiresMovement=no. + * + * We should ignore them while window-switching though, because + * calling desktop_focus_view() un-minimizes previewed window. */ desktop_focus_view_or_surface(&server->seat, ctx.view, ctx.surface, rc.raise_on_focus);