Index: uspace/srv/hid/display/seat.c
===================================================================
--- uspace/srv/hid/display/seat.c	(revision ededdc4233df3064b0a6ac39e158de4fd1520aeb)
+++ uspace/srv/hid/display/seat.c	(revision ffed09d79c4f737ed0a49581161c8c053ce34980)
@@ -188,12 +188,8 @@
 	ds_window_t *nwnd;
 
-	if (seat->focus != NULL)
-		nwnd = ds_display_prev_window(seat->focus);
-	else
-		nwnd = NULL;
-
-	if (nwnd == NULL)
-		nwnd = ds_display_last_window(seat->display);
-
+	/* Find alternate window that is not a system window */
+	nwnd = ds_window_find_alt(seat->focus, ~wndf_system);
+
+	/* Only switch focus if there is another window */
 	if (nwnd != NULL)
 		ds_seat_set_focus(seat, nwnd);
