Index: uspace/srv/hid/display/seat.c
===================================================================
--- uspace/srv/hid/display/seat.c	(revision 7e6603784b2bbda102aa3edc13f5c1d8326b4a66)
+++ uspace/srv/hid/display/seat.c	(revision 765995a0ea2b3013cfcf9d7aacd1c683fcfbf5c1)
@@ -515,12 +515,6 @@
 	wnd = ds_display_window_by_pos(seat->display, &seat->pntpos);
 
-	/* Click outside popup window */
-	if (event->type == POS_PRESS && wnd != seat->popup) {
-		/* Close popup window */
-		ds_seat_set_popup(seat, NULL);
-	}
-
 	/* Deliver event to popup window. */
-	if (seat->popup != NULL) {
+	if (seat->popup != NULL && event->type != POS_PRESS) {
 		rc = ds_window_post_pos_event(seat->popup, event);
 		if (rc != EOK)
@@ -546,5 +540,5 @@
 		 * to the same window above.
 		 */
-		if (wnd != seat->popup) {
+		if (wnd != seat->popup || event->type == POS_PRESS) {
 			rc = ds_window_post_pos_event(wnd, event);
 			if (rc != EOK)
@@ -556,4 +550,10 @@
 	}
 
+	/* Click outside popup window */
+	if (event->type == POS_PRESS && wnd != seat->popup) {
+		/* Close popup window */
+		ds_seat_set_popup(seat, NULL);
+	}
+
 	return EOK;
 }
