Redraw window in idle handler.
authorKristian Høgsberg <krh@redhat.com>
Mon, 3 Nov 2008 16:42:01 +0000 (11:42 -0500)
committerKristian Høgsberg <krh@redhat.com>
Thu, 6 Nov 2008 15:53:02 +0000 (10:53 -0500)
window.c

index 9e419d0..0067488 100644 (file)
--- a/window.c
+++ b/window.c
@@ -74,6 +74,7 @@ struct window {
        int state;
        uint32_t name;
        int fd;
+       int need_redraw;
 };
 
 static void *
@@ -185,7 +186,7 @@ void event_handler(struct wl_display *display,
                case WINDOW_RESIZING_LOWER_RIGHT:
                        window->width = window->drag_x + arg1;
                        window->height = window->drag_y + arg2;
-                       draw_window(window);
+                       window->need_redraw = 1;
                        break;
                }
        }
@@ -268,6 +269,10 @@ int main(int argc, char *argv[])
                        mask |= WL_CONNECTION_WRITABLE;
                if (mask)
                        wl_display_iterate(display, mask);
+               if (window.need_redraw) {
+                       draw_window(&window);
+                       window.need_redraw = 0;
+               }
        }
 
        return 0;