diff options
author | Matthias Clasen <mclasen@redhat.com> | 2009-12-08 10:09:04 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2009-12-08 10:13:06 -0500 |
commit | f0111dba7369996b5d51110ab372ced8f6a6d48f (patch) | |
tree | 8b5e45fba0dc78bb8943d7961469dc64b52194d9 | |
parent | 141716164a16f05cac898962e5cfa96fb24b2ed2 (diff) | |
download | gdk-pixbuf-f0111dba7369996b5d51110ab372ced8f6a6d48f.tar.gz |
Never do implicit paints for foreign windows
They don't need double buffer combination since they have no
client-side children, and creating pixmaps for them is risky
since they could disappear at any time.
May fix bug 598476 and 603652.
-rw-r--r-- | gdk/gdkwindow.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index ab7b8eb4e..d297e629c 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -2611,6 +2611,14 @@ gdk_window_begin_implicit_paint (GdkWindow *window, GdkRectangle *rect) private->implicit_paint != NULL) return FALSE; /* Don't stack implicit paints */ + /* Never do implicit paints for foreign windows, they don't need + * double buffer combination since they have no client side children, + * and creating pixmaps for them is risky since they could disappear + * at any time + */ + if (private->window_type == GDK_WINDOW_FOREIGN) + return FALSE; + paint = g_new (GdkWindowPaint, 1); paint->region = gdk_region_new (); /* Empty */ paint->x_offset = rect->x; |