diff options
-rw-r--r-- | docs/reference/gdk/gdk-sections.txt | 1 | ||||
-rw-r--r-- | gtk/gtkmain.c | 10 |
2 files changed, 10 insertions, 1 deletions
diff --git a/docs/reference/gdk/gdk-sections.txt b/docs/reference/gdk/gdk-sections.txt index 5bdc717068..43d000c709 100644 --- a/docs/reference/gdk/gdk-sections.txt +++ b/docs/reference/gdk/gdk-sections.txt @@ -662,6 +662,7 @@ gdk_window_resize gdk_window_move_resize gdk_window_scroll gdk_window_move_region +gdk_window_flush gdk_window_ensure_native gdk_window_reparent gdk_window_clear diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 11aee08fbc..e47e1beab3 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -1559,7 +1559,15 @@ gtk_main_do_event (GdkEvent *event) gdk_window_end_paint (event->any.window); } else - gtk_widget_send_expose (event_widget, event); + { + /* The app may paint with a previously allocated cairo_t, + which will draw directly to the window. We can't catch cairo + drap operatoins to automatically flush the window, thus we + need to explicitly flush any outstanding moves or double + buffering */ + gdk_window_flush (event->any.window); + gtk_widget_send_expose (event_widget, event); + } break; case GDK_PROPERTY_NOTIFY: |