diff --git a/clients/window.c b/clients/window.c
index 854c8ad..a833446 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -107,6 +107,7 @@
 struct window {
 	struct display *display;
 	struct window *parent;
+	struct widget *widget;
 	struct wl_surface *surface;
 	struct wl_shell_surface *shell_surface;
 	char *title;
@@ -131,7 +132,6 @@
 	window_key_handler_t key_handler;
 	window_button_handler_t button_handler;
 	window_keyboard_focus_handler_t keyboard_focus_handler;
-	window_motion_handler_t motion_handler;
 	window_data_handler_t data_handler;
 	window_drop_handler_t drop_handler;
 	window_close_handler_t close_handler;
@@ -919,6 +919,12 @@
 	return window->display;
 }
 
+struct widget *
+window_get_widget(struct window *window)
+{
+	return window->widget;
+}
+
 void
 window_create_surface(struct window *window)
 {
@@ -1060,7 +1066,7 @@
 	memset(widget, 0, sizeof *widget);
 	widget->window = window;
 	widget->user_data = data;
-	wl_list_insert(window->widget_list.prev, &widget->link);
+	wl_list_insert(&window->widget_list, &widget->link);
 
 	return widget;
 }
@@ -1298,10 +1304,6 @@
 	if (widget && widget->motion_handler)
 		pointer = widget->motion_handler(widget, input, time, sx, sy,
 						 widget->user_data);
-	if (window->motion_handler)
-		pointer = (*window->motion_handler)(window, input, time,
-						    x, y, sx, sy,
-						    window->user_data);
 
 	pointer = input_get_pointer_image_for_location(input, pointer);
 	input_set_pointer_image(input, time, pointer);
@@ -1946,6 +1948,8 @@
 		window->allocation.width = width;
 		window->allocation.height = height;
 	}
+
+	window->widget->allocation = window->allocation;
 }
 
 static void
@@ -2047,13 +2051,6 @@
 }
 
 void
-window_set_motion_handler(struct window *window,
-			  window_motion_handler_t handler)
-{
-	window->motion_handler = handler;
-}
-
-void
 window_set_keyboard_focus_handler(struct window *window,
 				  window_keyboard_focus_handler_t handler)
 {
@@ -2143,7 +2140,9 @@
 	window->margin = 16;
 	window->decoration = 1;
 	window->transparent = 1;
+
 	wl_list_init(&window->widget_list);
+	window->widget = window_add_widget(window, window);
 
 	if (display->dpy)
 #ifdef HAVE_CAIRO_EGL
