summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/reference/gdk/gdk-sections.txt1
-rw-r--r--gtk/gtkmain.c10
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: