[gtk+] Never do implicit paints for foreign windows



commit 0748cf563d0d0d03001a62589f13be16a8ec06c1
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Dec 8 10:09:04 2009 -0500

    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.

 gdk/gdkwindow.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 0404851..78b19e8 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;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]