[GdkQuartz] Fix two build issues

1. NSRect and CGRect aren't toll-free bridged in 32 bit builds.
2. NSWindowCollectionBehavior(Dis)AllowTiling is defined beginning in 10.11.
This commit is contained in:
John Ralls
2019-03-21 16:01:51 -07:00
parent 17665f06e3
commit 024cb267dd
2 changed files with 15 additions and 6 deletions

View File

@ -469,7 +469,7 @@ gdk_quartz_display_get_monitor_at_window (GdkDisplay *display,
}
if (!monitor)
{
GdkRectangle rect = cgrect_to_gdkrect ([nswindow frame]);
GdkRectangle rect = cgrect_to_gdkrect (NSRectToCGRect ([nswindow frame]));
monitor = gdk_display_get_monitor_at_point (display,
rect.x + rect.width/2,
rect.y + rect.height /2);

View File

@ -2183,7 +2183,14 @@ _gdk_quartz_window_set_collection_behavior (NSWindow *nswindow,
GdkWindowTypeHint hint)
{
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
if (gdk_quartz_osx_version() >= GDK_OSX_LION)
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 10110
#define GDK_QUARTZ_ALLOWS_TILING NSWindowCollectionBehaviorFullScreenAllowsTiling
#define GDK_QUARTZ_DISALLOWS_TILING NSWindowCollectionBehaviorFullScreenDisallowsTiling
#else
#define GDK_QUARTZ_ALLOWS_TILING 1 << 11
#define GDK_QUARTZ_DISALLOWS_TILING 1 << 12
#endif
if (gdk_quartz_osx_version() >= GDK_OSX_LION)
{
/* Fullscreen Collection Behavior */
NSWindowCollectionBehavior behavior = [nswindow collectionBehavior];
@ -2192,20 +2199,22 @@ _gdk_quartz_window_set_collection_behavior (NSWindow *nswindow,
case GDK_WINDOW_TYPE_HINT_NORMAL:
case GDK_WINDOW_TYPE_HINT_SPLASHSCREEN:
behavior &= ~(NSWindowCollectionBehaviorFullScreenAuxiliary &
NSWindowCollectionBehaviorFullScreenDisallowsTiling);
GDK_QUARTZ_DISALLOWS_TILING);
behavior |= (NSWindowCollectionBehaviorFullScreenPrimary |
NSWindowCollectionBehaviorFullScreenAllowsTiling);
GDK_QUARTZ_ALLOWS_TILING);
break;
default:
behavior &= ~(NSWindowCollectionBehaviorFullScreenPrimary &
NSWindowCollectionBehaviorFullScreenAllowsTiling);
GDK_QUARTZ_ALLOWS_TILING);
behavior |= (NSWindowCollectionBehaviorFullScreenAuxiliary |
NSWindowCollectionBehaviorFullScreenDisallowsTiling);
GDK_QUARTZ_DISALLOWS_TILING);
break;
}
[nswindow setCollectionBehavior:behavior];
}
#undef GDK_QUARTZ_ALLOWS_TILING
#undef GDK_QUARTZ_DISALLOWS_TILING
#endif
}