[gtk+/gtk-2-24] Fix garbage content when windows are initially mapped
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] Fix garbage content when windows are initially mapped
- Date: Fri, 28 Sep 2012 08:09:35 +0000 (UTC)
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]