Index: uspace/srv/hid/display/seat.c
===================================================================
--- uspace/srv/hid/display/seat.c	(revision 84e74ea2e2ddd81f8b1078cf08c150b4e01f0ad3)
+++ uspace/srv/hid/display/seat.c	(revision bc492d58e31efe00937971d94404811b78f0fb51)
@@ -384,4 +384,15 @@
 
 	wnd = ds_display_window_by_pos(seat->display, &seat->pntpos);
+
+	if (seat->focus != wnd) {
+		rc = ds_window_post_pos_event(seat->focus, event);
+		if (rc != EOK)
+			return rc;
+
+		/* Only deliver release events to the focused window */
+		if (event->type == POS_RELEASE)
+			return EOK;
+	}
+
 	if (wnd != NULL) {
 		/* Moving over a window */
@@ -396,10 +407,4 @@
 	}
 
-	if (seat->focus != wnd) {
-		rc = ds_window_post_pos_event(seat->focus, event);
-		if (rc != EOK)
-			return rc;
-	}
-
 	return EOK;
 }
Index: uspace/srv/hid/display/window.c
===================================================================
--- uspace/srv/hid/display/window.c	(revision 84e74ea2e2ddd81f8b1078cf08c150b4e01f0ad3)
+++ uspace/srv/hid/display/window.c	(revision bc492d58e31efe00937971d94404811b78f0fb51)
@@ -261,7 +261,4 @@
 	}
 
-	log_msg(LOG_DEFAULT, LVL_DEBUG, "ds_window_paint_preview");
-	prect.p0.x, prect.p0.y, prect.p1.x, prect.p1.y);
-
 	rc = gfx_color_new_rgb_i16(0xffff, 0xffff, 0xffff, &color);
 	if (rc != EOK)
