Replace commit/ack/frame protocol with simpler sync and frame callbacks
diff --git a/clients/gears.c b/clients/gears.c
index 0426f20..f8c77ec 100644
--- a/clients/gears.c
+++ b/clients/gears.c
@@ -317,31 +317,21 @@
 }
 
 static void
-acknowledge_handler(struct window *window,
-		    uint32_t key, uint32_t frame,
-		    void *data)
+frame_callback(void *data, uint32_t time)
 {
 	struct gears *gears = data;
 
-	if (key == 10) {
-		if (gears->resized)
-			resize_window(gears);
-
-		draw_gears(gears);
-	}
-}
-
-static void
-frame_handler(struct window *window,
-	      uint32_t frame, uint32_t timestamp, void *data)
-{
-  	struct gears *gears = data;
-
 	window_copy_image(gears->window, &gears->rectangle, gears->image);
 
-	window_commit(gears->window, 10);
+	if (gears->resized)
+		resize_window(gears);
 
-	gears->angle = (GLfloat) (timestamp % 8192) * 360 / 8192.0;
+	draw_gears(gears);
+
+	gears->angle = (GLfloat) (time % 8192) * 360 / 8192.0;
+
+	wl_display_frame_callback(display_get_display(gears->d),
+				  frame_callback, gears);
 }
 
 static struct gears *
@@ -417,13 +407,13 @@
 
 	resize_window(gears);
 	draw_gears(gears);
-	frame_handler(gears->window, 0, 0, gears);
 
 	window_set_user_data(gears->window, gears);
 	window_set_resize_handler(gears->window, resize_handler);
 	window_set_keyboard_focus_handler(gears->window, keyboard_focus_handler);
-	window_set_acknowledge_handler(gears->window, acknowledge_handler);
-	window_set_frame_handler(gears->window, frame_handler);
+
+	wl_display_frame_callback(display_get_display(gears->d),
+				  frame_callback, gears);
 
 	return gears;
 }