Schedule frame callback in the redraw handler
diff --git a/clients/resizor.c b/clients/resizor.c
index cfed126..687145a 100644
--- a/clients/resizor.c
+++ b/clients/resizor.c
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <string.h>
#include <cairo.h>
+#include <math.h>
#include "wayland-util.h"
#include "wayland-client.h"
@@ -73,6 +74,11 @@
cairo_surface_destroy(surface);
window_flush(resizor->window);
+
+ if (fabs(resizor->height.previous - resizor->height.target) < 0.1) {
+ wl_display_frame_callback(display_get_display(resizor->display),
+ frame_callback, resizor);
+ }
}
static void
@@ -120,11 +126,7 @@
window_set_child_size(resizor->window,
&resizor->child_allocation);
- if ((int) (height + 0.5) != resizor->height.target) {
- window_schedule_redraw(resizor->window);
- wl_display_frame_callback(display_get_display(resizor->display),
- frame_callback, resizor);
- }
+ window_schedule_redraw(resizor->window);
}
static void