gtk+ r19667 - in branches/gtk-2-12: . gdk/quartz
- From: rhult svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r19667 - in branches/gtk-2-12: . gdk/quartz
- Date: Wed, 27 Feb 2008 10:55:55 +0000 (GMT)
Author: rhult
Date: Wed Feb 27 10:55:55 2008
New Revision: 19667
URL: http://svn.gnome.org/viewvc/gtk+?rev=19667&view=rev
Log:
2008-02-27 Richard Hult <richard imendio com>
Merged from trunk:
* gdk/quartz/GdkQuartzView.c:
* gdk/quartz/GdkQuartzView.h:
* gdk/quartz/gdkwindow-quartz.c: (gdk_window_set_decorations):
Fix performance regression for borderless transparent windows
with shadow.
Modified:
branches/gtk-2-12/ChangeLog
branches/gtk-2-12/gdk/quartz/GdkQuartzView.c
branches/gtk-2-12/gdk/quartz/GdkQuartzView.h
branches/gtk-2-12/gdk/quartz/gdkwindow-quartz.c
Modified: branches/gtk-2-12/gdk/quartz/GdkQuartzView.c
==============================================================================
--- branches/gtk-2-12/gdk/quartz/GdkQuartzView.c (original)
+++ branches/gtk-2-12/gdk/quartz/GdkQuartzView.c Wed Feb 27 10:55:55 2008
@@ -116,15 +116,20 @@
gdk_region_destroy (region);
- /* Invalidate the window shadow for non-opaque views that have shadow
- * enabled, otherwise the shadow doesn't get updated to what we draw.
- */
- if (![self isOpaque] && [[self window] hasShadow])
- [[self window] invalidateShadow];
+ if (needsInvalidateShadow)
+ {
+ [[self window] invalidateShadow];
+ needsInvalidateShadow = NO;
+ }
GDK_QUARTZ_RELEASE_POOL;
}
+-(void)setNeedsInvalidateShadow:(BOOL)invalidate
+{
+ needsInvalidateShadow = invalidate;
+}
+
/* For information on setting up tracking rects properly, see here:
* http://developer.apple.com/documentation/Cocoa/Conceptual/EventOverview/EventOverview.pdf
*/
Modified: branches/gtk-2-12/gdk/quartz/GdkQuartzView.h
==============================================================================
--- branches/gtk-2-12/gdk/quartz/GdkQuartzView.h (original)
+++ branches/gtk-2-12/gdk/quartz/GdkQuartzView.h Wed Feb 27 10:55:55 2008
@@ -24,10 +24,12 @@
@interface GdkQuartzView : NSView {
GdkWindow *gdk_window;
NSTrackingRectTag trackingRect;
+ BOOL needsInvalidateShadow;
}
-(void)setGdkWindow:(GdkWindow *)window;
-(GdkWindow *)gdkWindow;
+-(void)setNeedsInvalidateShadow:(BOOL)invalidate;
@end
Modified: branches/gtk-2-12/gdk/quartz/gdkwindow-quartz.c
==============================================================================
--- branches/gtk-2-12/gdk/quartz/gdkwindow-quartz.c (original)
+++ branches/gtk-2-12/gdk/quartz/gdkwindow-quartz.c Wed Feb 27 10:55:55 2008
@@ -2535,6 +2535,12 @@
[impl->toplevel setContentView:old_view];
[impl->toplevel setFrame:rect display:YES];
+
+ /* Invalidate the window shadow for non-opaque views that have shadow
+ * enabled, to get the shadow shape updated.
+ */
+ if (![old_view isOpaque] && [impl->toplevel hasShadow])
+ [(GdkQuartzView*)old_view setNeedsInvalidateShadow:YES];
}
GDK_QUARTZ_RELEASE_POOL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]