window: Get rid of the window child allocation concept
diff --git a/clients/resizor.c b/clients/resizor.c
index 945f2ae..7699bed 100644
--- a/clients/resizor.c
+++ b/clients/resizor.c
@@ -53,9 +53,6 @@
 static void
 frame_callback(void *data, struct wl_callback *callback, uint32_t time)
 {
-	static const struct wl_callback_listener listener = {
-		frame_callback
-	};
 	struct resizor *resizor = data;
 	double force, height;
 
@@ -79,24 +76,18 @@
 		resizor->height.previous = 200;
 	}
 
-	window_set_child_size(resizor->window, resizor->width, height + 0.5);
-
-	window_schedule_redraw(resizor->window);
+	widget_schedule_resize(resizor->widget, resizor->width, height + 0.5);
 
 	if (resizor->frame_callback) {
 		wl_callback_destroy(resizor->frame_callback);
 		resizor->frame_callback = NULL;
 	}
-
-	if (fabs(resizor->height.previous - resizor->height.target) > 0.1) {
-		resizor->frame_callback =
-			wl_surface_frame(
-				window_get_wl_surface(resizor->window));
-		wl_callback_add_listener(resizor->frame_callback, &listener,
-					 resizor);
-	}
 }
 
+static const struct wl_callback_listener listener = {
+	frame_callback
+};
+
 static void
 redraw_handler(struct widget *widget, void *data)
 {
@@ -105,7 +96,7 @@
 	cairo_t *cr;
 	struct rectangle allocation;
 
-	window_get_child_allocation(resizor->window, &allocation);
+	widget_get_allocation(resizor->widget, &allocation);
 
 	surface = window_get_surface(resizor->window);
 
@@ -121,6 +112,15 @@
 	cairo_destroy(cr);
 
 	cairo_surface_destroy(surface);
+
+	if (fabs(resizor->height.previous - resizor->height.target) > 0.1) {
+		resizor->frame_callback =
+			wl_surface_frame(
+				window_get_wl_surface(resizor->window));
+		wl_callback_add_listener(resizor->frame_callback, &listener,
+					 resizor);
+	}
+
 }
 
 static void
@@ -222,10 +222,9 @@
 	resizor->height.target = resizor->height.current;
 	height = resizor->height.current + 0.5;
 
-	window_set_child_size(resizor->window, resizor->width, height);
 	widget_set_button_handler(resizor->widget, button_handler);
 
-	window_schedule_redraw(resizor->window);
+	widget_schedule_resize(resizor->widget, resizor->width, height);
 
 	return resizor;
 }