Index: uspace/srv/hid/display/types/display/window.h
===================================================================
--- uspace/srv/hid/display/types/display/window.h	(revision 76a02db7e731b87168f35adc71ee97a16e324e30)
+++ uspace/srv/hid/display/types/display/window.h	(revision 1b443cc0b3b0e3548a975143716735fc764a635c)
@@ -70,4 +70,6 @@
 	/** Display position */
 	gfx_coord2_t dpos;
+	/** Preview position */
+	gfx_coord2_t preview_pos;
 	/** Minimum size */
 	gfx_coord2_t min_size;
Index: uspace/srv/hid/display/window.c
===================================================================
--- uspace/srv/hid/display/window.c	(revision 76a02db7e731b87168f35adc71ee97a16e324e30)
+++ uspace/srv/hid/display/window.c	(revision 1b443cc0b3b0e3548a975143716735fc764a635c)
@@ -409,4 +409,9 @@
 static void ds_window_start_move(ds_window_t *wnd, gfx_coord2_t *pos)
 {
+	gfx_color_t *color;
+	gfx_context_t *gc;
+	gfx_rect_t drect;
+	errno_t rc;
+
 	log_msg(LOG_DEFAULT, LVL_DEBUG, "ds_window_start_move (%d, %d)",
 	    (int) pos->x, (int) pos->y);
@@ -417,4 +422,19 @@
 	wnd->orig_pos = *pos;
 	wnd->state = dsw_moving;
+	wnd->preview_pos = wnd->dpos;
+
+	rc = gfx_color_new_rgb_i16(0xffff, 0xffff, 0xffff, &color);
+	if (rc != EOK)
+		return;
+
+	gfx_rect_translate(&wnd->dpos, &wnd->rect, &drect);
+
+	gc = ds_display_get_gc(wnd->display); // XXX
+	if (gc != NULL) {
+		gfx_set_color(gc, color);
+		gfx_fill_rect(gc, &drect);
+	}
+
+	gfx_color_delete(color);
 }
 
@@ -464,19 +484,13 @@
 		return;
 
-	gfx_rect_translate(&wnd->dpos, &wnd->rect, &drect);
-
-	gc = ds_display_get_gc(wnd->display); // XXX
-	if (gc != NULL) {
-		gfx_set_color(gc, wnd->display->bg_color);
-		gfx_fill_rect(gc, &drect);
-	}
+	gfx_rect_translate(&wnd->preview_pos, &wnd->rect, &drect);
+	ds_display_paint(wnd->display, &drect);
 
 	gfx_coord2_subtract(pos, &wnd->orig_pos, &dmove);
 
 	gfx_coord2_add(&wnd->dpos, &dmove, &nwpos);
+	wnd->preview_pos = nwpos;
+
 	gfx_rect_translate(&nwpos, &wnd->rect, &drect);
-
-	wnd->orig_pos = *pos;
-	wnd->dpos = nwpos;
 
 	rc = gfx_color_new_rgb_i16(0xffff, 0xffff, 0xffff, &color);
