[gtk+/gtk-2-24] Bug 655074 - Fix crash with undecorated windows on MacOS Lion
- From: John Ralls <jralls src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/gtk-2-24] Bug 655074 - Fix crash with undecorated windows on MacOS Lion
- Date: Mon, 25 Jul 2011 13:21:28 +0000 (UTC)
commit 5c73ebf54c81e310b12e150611da5036a6eb1d31
Author: Michael Hutchinson <m j hutchinson gmail com>
Date: Mon Jul 25 10:29:23 2011 +0200
Bug 655074 - Fix crash with undecorated windows on MacOS Lion
gdk/quartz/gdkwindow-quartz.c | 33 +++++++++++++++++++++------------
1 files changed, 21 insertions(+), 12 deletions(-)
---
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index b28d9b7..a9d4713 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -2622,10 +2622,6 @@ gdk_window_set_decorations (GdkWindow *window,
old_mask = [impl->toplevel styleMask];
- /* Note, there doesn't seem to be a way to change this without
- * recreating the toplevel. There might be bad side-effects of doing
- * that, but it seems alright.
- */
if (old_mask != new_mask)
{
NSRect rect;
@@ -2649,15 +2645,28 @@ gdk_window_set_decorations (GdkWindow *window,
rect = [NSWindow contentRectForFrameRect:rect styleMask:old_mask];
}
- impl->toplevel = [impl->toplevel initWithContentRect:rect
- styleMask:new_mask
- backing:NSBackingStoreBuffered
- defer:NO];
-
- [impl->toplevel setHasShadow: window_type_hint_to_shadow (impl->type_hint)];
- [impl->toplevel setLevel: window_type_hint_to_level (impl->type_hint)];
+ /* Note, before OS 10.6 there doesn't seem to be a way to change this without
+ * recreating the toplevel. There might be bad side-effects of doing
+ * that, but it seems alright.
+ */
+#if MAC_OS_X_VERSION_MIN_ALLOWED > MAC_OS_X_VERSION_10_5
+ if ([impl->toplevel respondsToSelector:@selector(setStyleMask:)])
+ {
+ [impl->toplevel setStyleMask:new_mask];
+ }
+ else
+#endif
+ {
+ [impl->toplevel release];
+ impl->toplevel = [[GdkQuartzWindow alloc] initWithContentRect:rect
+ styleMask:new_mask
+ backing:NSBackingStoreBuffered
+ defer:NO];
+ [impl->toplevel setHasShadow: window_type_hint_to_shadow (impl->type_hint)];
+ [impl->toplevel setLevel: window_type_hint_to_level (impl->type_hint)];
+ [impl->toplevel setContentView:old_view];
+ }
- [impl->toplevel setContentView:old_view];
[impl->toplevel setFrame:rect display:YES];
/* Invalidate the window shadow for non-opaque views that have shadow
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]