window: Make resize and redraw handlers widget vfuncs
diff --git a/clients/dnd.c b/clients/dnd.c
index cd03b1f..0498c5d 100644
--- a/clients/dnd.c
+++ b/clients/dnd.c
@@ -160,8 +160,9 @@
 }
 
 static void
-dnd_draw(struct dnd *dnd)
+dnd_redraw_handler(struct widget *widget, void *data)
 {
+	struct dnd *dnd = data;
 	struct rectangle allocation;
 	cairo_t *cr;
 	cairo_surface_t *surface;
@@ -192,14 +193,6 @@
 }
 
 static void
-redraw_handler(struct window *window, void *data)
-{
-	struct dnd *dnd = data;
-
-	dnd_draw(dnd);
-}
-
-static void
 keyboard_focus_handler(struct window *window,
 		       struct input *device, void *data)
 {
@@ -530,12 +523,12 @@
 	}
 
 	window_set_user_data(dnd->window, dnd);
-	window_set_redraw_handler(dnd->window, redraw_handler);
 	window_set_keyboard_focus_handler(dnd->window,
 					  keyboard_focus_handler);
 	window_set_data_handler(dnd->window, dnd_data_handler);
 	window_set_drop_handler(dnd->window, dnd_drop_handler);
 
+	widget_set_redraw_handler(dnd->widget, dnd_redraw_handler);
 	widget_set_enter_handler(dnd->widget, dnd_enter_handler);
 	widget_set_motion_handler(dnd->widget, dnd_motion_handler);
 	widget_set_button_handler(dnd->widget, dnd_button_handler);
@@ -544,7 +537,7 @@
 	height = 4 * (item_height + item_padding) + item_padding;
 	window_set_child_size(dnd->window, width, height);
 
-	dnd_draw(dnd);
+	window_schedule_redraw(dnd->window);
 
 	return dnd;
 }