window: throttle resizing to the main surface

In case a toytoolkit application manages to schedule resizes constantly,
throttle them to the main surface display.

When resizing, all surfaces are updated synchronously, so it also makes
sense to synchronize on the main surface's frame callback particularly.
Rendering any faster will not make sense.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
diff --git a/clients/window.c b/clients/window.c
index ab9a36e..b72c2ca 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -3561,16 +3561,21 @@
 	struct window *window = container_of(task, struct window, redraw_task);
 	struct surface *surface;
 
-	if (window->resize_needed)
+	wl_list_init(&window->redraw_task.link);
+	window->redraw_task_scheduled = 0;
+
+	if (window->resize_needed) {
+		/* throttle resizing to the main surface display */
+		if (window->main_surface->frame_cb)
+			return;
+
 		idle_resize(window);
+	}
 
 	wl_list_for_each(surface, &window->subsurface_list, link)
 		surface_redraw(surface);
 
 	window->redraw_needed = 0;
-	wl_list_init(&window->redraw_task.link);
-	window->redraw_task_scheduled = 0;
-
 	window_flush(window);
 
 	wl_list_for_each(surface, &window->subsurface_list, link)