Index: uspace/srv/hid/display/types/display/window.h
===================================================================
--- uspace/srv/hid/display/types/display/window.h	(revision 1b443cc0b3b0e3548a975143716735fc764a635c)
+++ uspace/srv/hid/display/types/display/window.h	(revision 71eff34007c9a82fc7fbec050f1892ece347e96c)
@@ -70,6 +70,8 @@
 	/** Display position */
 	gfx_coord2_t dpos;
-	/** Preview position */
+	/** Preview position (when moving) */
 	gfx_coord2_t preview_pos;
+	/** Preview rectangle (when resizing) */
+	gfx_rect_t preview_rect;
 	/** Minimum size */
 	gfx_coord2_t min_size;
Index: uspace/srv/hid/display/window.c
===================================================================
--- uspace/srv/hid/display/window.c	(revision 1b443cc0b3b0e3548a975143716735fc764a635c)
+++ uspace/srv/hid/display/window.c	(revision 71eff34007c9a82fc7fbec050f1892ece347e96c)
@@ -525,4 +525,5 @@
 	wnd->state = dsw_resizing;
 	wnd->rsztype = rsztype;
+	wnd->preview_rect = wnd->rect;
 }
 
@@ -574,11 +575,6 @@
 		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->dpos, &wnd->preview_rect, &drect);
+	(void) ds_display_paint(wnd->display, &drect);
 
 	gfx_coord2_subtract(pos, &wnd->orig_pos, &dresize);
@@ -586,4 +582,5 @@
 	ds_window_calc_resize(wnd, &dresize, &nrect);
 	gfx_rect_translate(&wnd->dpos, &nrect, &drect);
+	wnd->preview_rect = nrect;
 
 	rc = gfx_color_new_rgb_i16(0xffff, 0xffff, 0xffff, &color);
