Index: uspace/srv/hid/display/window.c
===================================================================
--- uspace/srv/hid/display/window.c	(revision b3b00b6e8d1f9ba532a8f595d974b4eaa1d16913)
+++ uspace/srv/hid/display/window.c	(revision 5f483bed56525671e8eedbe4fda24dc1bc0b6993)
@@ -471,6 +471,5 @@
 	    (int) pos->x, (int) pos->y);
 
-	if (wnd->state != dsw_moving)
-		return;
+	assert(wnd->state == dsw_moving);
 
 	gfx_coord2_subtract(pos, &wnd->orig_pos, &dmove);
@@ -500,6 +499,5 @@
 	    (int) pos->x, (int) pos->y);
 
-	if (wnd->state != dsw_moving)
-		return;
+	assert(wnd->state == dsw_moving);
 
 	gfx_rect_translate(&wnd->preview_pos, &wnd->rect, &drect);
@@ -569,6 +567,5 @@
 	    (int) pos->x, (int) pos->y);
 
-	if (wnd->state != dsw_resizing)
-		return;
+	assert(wnd->state == dsw_resizing);
 
 	(void) ds_display_paint(wnd->display, NULL);
@@ -604,6 +601,5 @@
 	    (int) pos->x, (int) pos->y);
 
-	if (wnd->state != dsw_resizing)
-		return;
+	assert(wnd->state == dsw_resizing);
 
 	gfx_rect_translate(&wnd->dpos, &wnd->preview_rect, &drect);
@@ -672,15 +668,31 @@
 	inside = gfx_pix_inside_rect(&pos, &drect);
 
-	if (event->type == POS_PRESS && event->btn_num == 2 && inside)
+	if (event->type == POS_PRESS && event->btn_num == 2 && inside) {
 		ds_window_start_move(wnd, &pos);
+		return EOK;
+	}
 
 	if (event->type == POS_RELEASE) {
-		ds_window_finish_move(wnd, &pos);
-		ds_window_finish_resize(wnd, &pos);
+		if (wnd->state == dsw_moving) {
+			ds_window_finish_move(wnd, &pos);
+			return EOK;
+		}
+
+		if (wnd->state == dsw_resizing) {
+			ds_window_finish_resize(wnd, &pos);
+			return EOK;
+		}
 	}
 
 	if (event->type == POS_UPDATE) {
-		ds_window_update_move(wnd, &pos);
-		ds_window_update_resize(wnd, &pos);
+		if (wnd->state == dsw_moving) {
+			ds_window_update_move(wnd, &pos);
+			return EOK;
+		}
+
+		if (wnd->state == dsw_resizing) {
+			ds_window_update_resize(wnd, &pos);
+			return EOK;
+		}
 	}
 
