From 5c4056e049ebb8735cd0be8c5a639a90a6dae8f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Thu, 16 Dec 2010 14:56:41 -0500 Subject: [PATCH] Schedule frame callback in the redraw handler --- clients/resizor.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/clients/resizor.c b/clients/resizor.c index cfed1267..687145a1 100644 --- a/clients/resizor.c +++ b/clients/resizor.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "wayland-util.h" #include "wayland-client.h" @@ -73,6 +74,11 @@ resizor_draw(struct resizor *resizor) 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 @@ frame_callback(void *data, uint32_t time) 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