[gtk+/gtk-2-24] Fix garbage content when windows are initially mapped



commit 92ea94af5f1a4d0970628b58997192ccf74cab36
Author: Kristian Rietveld <kris lanedo com>
Date:   Fri Sep 28 06:50:13 2012 +0200

    Fix garbage content when windows are initially mapped
    
    The garbage would be visible if any widget enabled the toplevel
    NSView's CALayer in order to do custom native rendering.

 gdk/quartz/GdkQuartzView.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)
---
diff --git a/gdk/quartz/GdkQuartzView.c b/gdk/quartz/GdkQuartzView.c
index 5606b99..2a75da9 100644
--- a/gdk/quartz/GdkQuartzView.c
+++ b/gdk/quartz/GdkQuartzView.c
@@ -86,6 +86,25 @@
   if (NSEqualRects (rect, NSZeroRect))
     return;
 
+  if (!GDK_WINDOW_IS_MAPPED (gdk_window))
+    {
+      /* If the window is not yet mapped, clip_region_with_children
+       * will be empty causing the usual code below to draw nothing.
+       * To not see garbage on the screen, we draw an aesthetic color
+       * here. The garbage would be visible if any widget enabled
+       * the NSView's CALayer in order to add sublayers for custom
+       * native rendering.
+       */
+      [NSGraphicsContext saveGraphicsState];
+
+      [[[self window] backgroundColor] setFill];
+      [NSBezierPath fillRect:rect];
+
+      [NSGraphicsContext restoreGraphicsState];
+
+      return;
+    }
+
   /* Clear our own bookkeeping of regions that need display */
   if (impl->needs_display_region)
     {



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