[gtk/gtk-3-24: 11/20] Fix Cocoa style and event constants for MacOS X 10.12 and later.



commit f30ed5ddc75ef7fe4d6c1f05cb87fc2b1502aabc
Author: John Ralls <jralls ceridwen us>
Date:   Mon Dec 3 21:06:41 2018 +0900

    Fix Cocoa style and event constants for MacOS X 10.12 and later.

 gdk/quartz/GdkQuartzNSWindow.c   |  27 ++++++-
 gdk/quartz/gdkeventloop-quartz.c |  18 ++++-
 gdk/quartz/gdkevents-quartz.c    | 165 +++++++++++++++++++++------------------
 gdk/quartz/gdkkeys-quartz.c      |  24 +++---
 gdk/quartz/gdkquartzkeys.h       |  73 +++++++++++++++++
 gdk/quartz/gdkselection-quartz.c |  28 +++++--
 gdk/quartz/gdkwindow-quartz.c    |  81 ++++++++++++-------
 7 files changed, 285 insertions(+), 131 deletions(-)
---
diff --git a/gdk/quartz/GdkQuartzNSWindow.c b/gdk/quartz/GdkQuartzNSWindow.c
index becf325b83..6c8f233cf7 100644
--- a/gdk/quartz/GdkQuartzNSWindow.c
+++ b/gdk/quartz/GdkQuartzNSWindow.c
@@ -120,6 +120,13 @@
   inMove = YES;
 }
 
+
+#ifdef AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER
+#define NSLeftMouseUp NSEventTypeLeftMouseUp
+#define NSLeftMouseDragged NSEventTypeLeftMouseDragged
+#define NSMouseEntered NSEventTypeMouseEntered
+#endif
+
 -(void)sendEvent:(NSEvent *)event
 {
   switch ([event type])
@@ -255,7 +262,11 @@
 }
 
 -(id)initWithContentRect:(NSRect)contentRect
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
+               styleMask:(NSUInteger)styleMask
+#else
                styleMask:(NSWindowStyleMask)styleMask
+#endif
                  backing:(NSBackingStoreType)backingType
                    defer:(BOOL)flag
                   screen:(NSScreen *)screen
@@ -805,17 +816,27 @@ update_context_from_dragging_info (id <NSDraggingInfo> sender)
 }
 
 #ifdef AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
-
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
+typedef enum
+{
+ GDK_QUARTZ_FULL_SCREEN_MASK = NSFullScreenWindowMask,
+} GdkQuartzFullScreen;
+#else
+typedef enum
+{
+ GDK_QUARTZ_FULL_SCREEN_MASK = NSWindowStyleMaskFullScreen,
+} GdkQuartzFullScreen;
+#endif
 - (void)setStyleMask:(NSUInteger)styleMask
 {
   gboolean was_fullscreen;
   gboolean is_fullscreen;
 
-  was_fullscreen = (([self styleMask] & NSFullScreenWindowMask) != 0);
+  was_fullscreen = (([self styleMask] & GDK_QUARTZ_FULL_SCREEN_MASK) != 0);
 
   [super setStyleMask:styleMask];
 
-  is_fullscreen = (([self styleMask] & NSFullScreenWindowMask) != 0);
+  is_fullscreen = (([self styleMask] & GDK_QUARTZ_FULL_SCREEN_MASK) != 0);
 
   if (was_fullscreen != is_fullscreen)
     _gdk_quartz_window_update_fullscreen_state ([[self contentView] gdkWindow]);
diff --git a/gdk/quartz/gdkeventloop-quartz.c b/gdk/quartz/gdkeventloop-quartz.c
index c20563931f..3f3b033242 100644
--- a/gdk/quartz/gdkeventloop-quartz.c
+++ b/gdk/quartz/gdkeventloop-quartz.c
@@ -292,13 +292,19 @@ select_thread_func (void *arg)
     }
 }
 
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
+#define GDK_QUARTZ_APPLICATION_DEFINED NSApplicationDefined
+#else
+#define GDK_QUARTZ_APPLICATION_DEFINED NSEventTypeApplicationDefined
+#endif
+
 static void 
 got_fd_activity (void *info)
 {
   NSEvent *event;
 
   /* Post a message so we'll break out of the message loop */
-  event = [NSEvent otherEventWithType: NSApplicationDefined
+  event = [NSEvent otherEventWithType: GDK_QUARTZ_APPLICATION_DEFINED
                             location: NSZeroPoint
                        modifierFlags: 0
                            timestamp: 0
@@ -714,6 +720,12 @@ static GSourceFuncs event_funcs = {
  *********             Our Poll Function            *********
  ************************************************************/
 
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
+#define GDK_QUARTZ_EVENT_MASK_ANY NSAnyEventMask
+#else
+#define GDK_QUARTZ_EVENT_MASK_ANY NSEventMaskAny
+#endif
+
 static gint
 poll_func (GPollFD *ufds,
           guint    nfds,
@@ -739,7 +751,7 @@ poll_func (GPollFD *ufds,
     limit_date = [NSDate dateWithTimeIntervalSinceNow:timeout_/1000.0];
 
   getting_events++;
-  event = [NSApp nextEventMatchingMask: NSAnyEventMask
+  event = [NSApp nextEventMatchingMask: GDK_QUARTZ_EVENT_MASK_ANY
                             untilDate: limit_date
                                inMode: NSDefaultRunLoopMode
                                dequeue: YES];
@@ -758,7 +770,7 @@ poll_func (GPollFD *ufds,
     n_ready = select_thread_collect_poll (ufds, nfds);
       
   if (event &&
-      [event type] == NSApplicationDefined &&
+      [event type] == GDK_QUARTZ_APPLICATION_DEFINED &&
       [event subtype] == GDK_QUARTZ_EVENT_SUBTYPE_EVENTLOOP)
     {
       /* Just used to wake us up; if an event and a FD arrived at the same
diff --git a/gdk/quartz/gdkevents-quartz.c b/gdk/quartz/gdkevents-quartz.c
index 00df2dc40c..952d4a8189 100644
--- a/gdk/quartz/gdkevents-quartz.c
+++ b/gdk/quartz/gdkevents-quartz.c
@@ -35,6 +35,7 @@
 #include "gdkquartzdisplay.h"
 #include "gdkprivate-quartz.h"
 #include "gdkquartzdevicemanager-core.h"
+#include "gdkquartzkeys.h"
 
 #define GRIP_WIDTH 15
 #define GRIP_HEIGHT 15
@@ -270,15 +271,15 @@ get_keyboard_modifiers_from_ns_flags (NSUInteger nsflags)
 {
   GdkModifierType modifiers = 0;
 
-  if (nsflags & NSAlphaShiftKeyMask)
+  if (nsflags & GDK_QUARTZ_ALPHA_SHIFT_KEY_MASK)
     modifiers |= GDK_LOCK_MASK;
-  if (nsflags & NSShiftKeyMask)
+  if (nsflags & GDK_QUARTZ_SHIFT_KEY_MASK)
     modifiers |= GDK_SHIFT_MASK;
-  if (nsflags & NSControlKeyMask)
+  if (nsflags & GDK_QUARTZ_CONTROL_KEY_MASK)
     modifiers |= GDK_CONTROL_MASK;
-  if (nsflags & NSAlternateKeyMask)
+  if (nsflags & GDK_QUARTZ_ALTERNATE_KEY_MASK)
     modifiers |= GDK_MOD1_MASK;
-  if (nsflags & NSCommandKeyMask)
+  if (nsflags & GDK_QUARTZ_COMMAND_KEY_MASK)
     modifiers |= GDK_MOD2_MASK;
 
   return modifiers;
@@ -296,31 +297,31 @@ get_event_mask_from_ns_event (NSEvent *nsevent)
 {
   switch ([nsevent type])
     {
-    case NSLeftMouseDown:
-    case NSRightMouseDown:
-    case NSOtherMouseDown:
+    case GDK_QUARTZ_LEFT_MOUSE_DOWN:
+    case GDK_QUARTZ_RIGHT_MOUSE_DOWN:
+    case GDK_QUARTZ_OTHER_MOUSE_DOWN:
       return GDK_BUTTON_PRESS_MASK;
-    case NSLeftMouseUp:
-    case NSRightMouseUp:
-    case NSOtherMouseUp:
+    case GDK_QUARTZ_LEFT_MOUSE_UP:
+    case GDK_QUARTZ_RIGHT_MOUSE_UP:
+    case GDK_QUARTZ_OTHER_MOUSE_UP:
       return GDK_BUTTON_RELEASE_MASK;
-    case NSMouseMoved:
+    case GDK_QUARTZ_MOUSE_MOVED:
       return GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK;
-    case NSScrollWheel:
+    case GDK_QUARTZ_SCROLL_WHEEL:
       /* Since applications that want button press events can get
        * scroll events on X11 (since scroll wheel events are really
        * button press events there), we need to use GDK_BUTTON_PRESS_MASK too.
        */
       return GDK_SCROLL_MASK | GDK_BUTTON_PRESS_MASK;
-    case NSLeftMouseDragged:
+    case GDK_QUARTZ_LEFT_MOUSE_DRAGGED:
       return (GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
              GDK_BUTTON_MOTION_MASK | GDK_BUTTON1_MOTION_MASK | 
              GDK_BUTTON1_MASK);
-    case NSRightMouseDragged:
+    case GDK_QUARTZ_RIGHT_MOUSE_DRAGGED:
       return (GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
              GDK_BUTTON_MOTION_MASK | GDK_BUTTON3_MOTION_MASK | 
              GDK_BUTTON3_MASK);
-    case NSOtherMouseDragged:
+    case GDK_QUARTZ_OTHER_MOUSE_DRAGGED:
       {
        GdkEventMask mask;
 
@@ -337,9 +338,9 @@ get_event_mask_from_ns_event (NSEvent *nsevent)
     case NSEventTypeMagnify:
     case NSEventTypeRotate:
       return GDK_TOUCHPAD_GESTURE_MASK;
-    case NSKeyDown:
-    case NSKeyUp:
-    case NSFlagsChanged:
+    case GDK_QUARTZ_KEY_DOWN:
+    case GDK_QUARTZ_KEY_UP:
+    case GDK_QUARTZ_FLAGS_CHANGED:
       {
         switch (_gdk_quartz_keys_event_type (nsevent))
          {
@@ -355,10 +356,10 @@ get_event_mask_from_ns_event (NSEvent *nsevent)
       }
       break;
 
-    case NSMouseEntered:
+    case GDK_QUARTZ_MOUSE_ENTERED:
       return GDK_ENTER_NOTIFY_MASK;
 
-    case NSMouseExited:
+    case GDK_QUARTZ_MOUSE_EXITED:
       return GDK_LEAVE_NOTIFY_MASK;
 
     default:
@@ -393,9 +394,9 @@ is_mouse_button_press_event (NSEventType type)
 {
   switch (type)
     {
-      case NSLeftMouseDown:
-      case NSRightMouseDown:
-      case NSOtherMouseDown:
+      case GDK_QUARTZ_LEFT_MOUSE_DOWN:
+      case GDK_QUARTZ_RIGHT_MOUSE_DOWN:
+      case GDK_QUARTZ_OTHER_MOUSE_DOWN:
         return TRUE;
     default:
       return FALSE;
@@ -755,7 +756,7 @@ find_toplevel_for_mouse_event (NSEvent    *nsevent,
        * gdk gets confused about getting e.g. button presses with no
        * window (the title bar is not known to it).
        */
-      if (event_type != NSMouseMoved)
+      if (event_type != GDK_QUARTZ_MOUSE_MOVED)
         if (*y < 0)
           return NULL;
 
@@ -810,23 +811,23 @@ find_window_for_ns_event (NSEvent *nsevent,
 
   switch (event_type)
     {
-    case NSLeftMouseDown:
-    case NSRightMouseDown:
-    case NSOtherMouseDown:
-    case NSLeftMouseUp:
-    case NSRightMouseUp:
-    case NSOtherMouseUp:
-    case NSMouseMoved:
-    case NSScrollWheel:
-    case NSLeftMouseDragged:
-    case NSRightMouseDragged:
-    case NSOtherMouseDragged:
+    case GDK_QUARTZ_LEFT_MOUSE_DOWN:
+    case GDK_QUARTZ_RIGHT_MOUSE_DOWN:
+    case GDK_QUARTZ_OTHER_MOUSE_DOWN:
+    case GDK_QUARTZ_LEFT_MOUSE_UP:
+    case GDK_QUARTZ_RIGHT_MOUSE_UP:
+    case GDK_QUARTZ_OTHER_MOUSE_UP:
+    case GDK_QUARTZ_MOUSE_MOVED:
+    case GDK_QUARTZ_SCROLL_WHEEL:
+    case GDK_QUARTZ_LEFT_MOUSE_DRAGGED:
+    case GDK_QUARTZ_RIGHT_MOUSE_DRAGGED:
+    case GDK_QUARTZ_OTHER_MOUSE_DRAGGED:
     case NSEventTypeMagnify:
     case NSEventTypeRotate:
       return find_toplevel_for_mouse_event (nsevent, x, y);
-      
-    case NSMouseEntered:
-    case NSMouseExited:
+
+    case GDK_QUARTZ_MOUSE_ENTERED:
+    case GDK_QUARTZ_MOUSE_EXITED:
       /* Only handle our own entered/exited events, not the ones for the
        * titlebar buttons.
        */
@@ -835,9 +836,9 @@ find_window_for_ns_event (NSEvent *nsevent,
       else
         return NULL;
 
-    case NSKeyDown:
-    case NSKeyUp:
-    case NSFlagsChanged:
+    case GDK_QUARTZ_KEY_DOWN:
+    case GDK_QUARTZ_KEY_UP:
+    case GDK_QUARTZ_FLAGS_CHANGED:
       return find_toplevel_for_keyboard_event (nsevent);
 
     default:
@@ -1008,16 +1009,16 @@ fill_button_event (GdkWindow *window,
 
   switch ([nsevent type])
     {
-    case NSLeftMouseDown:
-    case NSRightMouseDown:
-    case NSOtherMouseDown:
+    case GDK_QUARTZ_LEFT_MOUSE_DOWN:
+    case GDK_QUARTZ_RIGHT_MOUSE_DOWN:
+    case GDK_QUARTZ_OTHER_MOUSE_DOWN:
       type = GDK_BUTTON_PRESS;
       state &= ~get_mouse_button_modifiers_from_ns_event (nsevent);
       break;
 
-    case NSLeftMouseUp:
-    case NSRightMouseUp:
-    case NSOtherMouseUp:
+    case GDK_QUARTZ_LEFT_MOUSE_UP:
+    case GDK_QUARTZ_RIGHT_MOUSE_UP:
+    case GDK_QUARTZ_OTHER_MOUSE_UP:
       type = GDK_BUTTON_RELEASE;
       state |= get_mouse_button_modifiers_from_ns_event (nsevent);
       break;
@@ -1119,7 +1120,7 @@ fill_key_event (GdkWindow    *window,
   event->key.state = get_keyboard_modifiers_from_ns_event (nsevent);
   event->key.hardware_keycode = [nsevent keyCode];
   gdk_event_set_scancode (event, [nsevent keyCode]);
-  event->key.group = ([nsevent modifierFlags] & NSAlternateKeyMask) ? 1 : 0;
+  event->key.group = ([nsevent modifierFlags] & GDK_QUARTZ_ALTERNATE_KEY_MASK) ? 1 : 0;
   event->key.keyval = GDK_KEY_VoidSymbol;
 
   gdk_event_set_device (event, gdk_seat_get_keyboard (seat));
@@ -1239,7 +1240,7 @@ synthesize_crossing_event (GdkWindow *window,
 {
   switch ([nsevent type])
     {
-    case NSMouseEntered:
+    case GDK_QUARTZ_MOUSE_ENTERED:
       /* Enter events are considered always to be from another toplevel
        * window, this shouldn't negatively affect any app or gtk code,
        * and is the only way to make GtkMenu work. EEK EEK EEK.
@@ -1255,7 +1256,7 @@ synthesize_crossing_event (GdkWindow *window,
                            GDK_NOTIFY_NONLINEAR);
       return TRUE;
 
-    case NSMouseExited:
+    case GDK_QUARTZ_MOUSE_EXITED:
       /* See above */
       if (!(window->event_mask & GDK_LEAVE_NOTIFY_MASK))
         return FALSE;
@@ -1342,12 +1343,12 @@ test_resize (NSEvent *event, GdkWindow *toplevel, gint x, gint y)
   GdkWindowImplQuartz *toplevel_impl;
   gboolean lion;
 
-  /* Resizing from the resize indicator only begins if an NSLeftMouseButton
+  /* Resizing from the resize indicator only begins if an GDK_QUARTZ_LEFT_MOUSE_BUTTON
    * event is received in the resizing area.
    */
   toplevel_impl = (GdkWindowImplQuartz *)toplevel->impl;
   if ([toplevel_impl->toplevel showsResizeIndicator])
-  if ([event type] == NSLeftMouseDown &&
+  if ([event type] == GDK_QUARTZ_LEFT_MOUSE_DOWN &&
       [toplevel_impl->toplevel showsResizeIndicator])
     {
       NSRect frame;
@@ -1386,9 +1387,9 @@ test_resize (NSEvent *event, GdkWindow *toplevel, gint x, gint y)
    */
   lion = gdk_quartz_osx_version () >= GDK_OSX_LION;
   if (lion &&
-      ([event type] == NSLeftMouseDown ||
-       [event type] == NSRightMouseDown ||
-       [event type] == NSOtherMouseDown))
+      ([event type] == GDK_QUARTZ_LEFT_MOUSE_DOWN ||
+       [event type] == GDK_QUARTZ_RIGHT_MOUSE_DOWN ||
+       [event type] == GDK_QUARTZ_OTHER_MOUSE_DOWN))
     {
       if (x < GDK_LION_RESIZE ||
           x > toplevel->width - GDK_LION_RESIZE ||
@@ -1399,6 +1400,14 @@ test_resize (NSEvent *event, GdkWindow *toplevel, gint x, gint y)
   return FALSE;
 }
 
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
+#define GDK_QUARTZ_APP_KIT_DEFINED NSAppKitDefined
+#define GDK_QUARTZ_APPLICATION_DEACTIVATED NSApplicationDeactivatedEventType
+#else
+#define GDK_QUARTZ_APP_KIT_DEFINED NSEventTypeAppKitDefined
+#define GDK_QUARTZ_APPLICATION_DEACTIVATED NSEventSubtypeApplicationDeactivated
+#endif
+
 static gboolean
 gdk_event_translate (GdkEvent *event,
                      NSEvent  *nsevent)
@@ -1414,9 +1423,9 @@ gdk_event_translate (GdkEvent *event,
    * grabs when the application loses focus (gets deactivated).
    */
   event_type = [nsevent type];
-  if (event_type == NSAppKitDefined)
+  if (event_type == GDK_QUARTZ_APP_KIT_DEFINED)
     {
-      if ([nsevent subtype] == NSApplicationDeactivatedEventType)
+      if ([nsevent subtype] ==  GDK_QUARTZ_APPLICATION_DEACTIVATED)
         _gdk_quartz_events_break_all_grabs (get_time_from_ns_event (nsevent));
 
       /* This could potentially be used to break grabs when clicking
@@ -1452,7 +1461,7 @@ gdk_event_translate (GdkEvent *event,
     {
       GdkWindow *toplevel = NULL;
 
-      if (event_type == NSMouseMoved)
+      if (event_type == GDK_QUARTZ_MOUSE_MOVED)
         {
           /* Motion events received after clicking the menu bar do not have the
            * window field set.  Instead of giving up on the event immediately,
@@ -1523,9 +1532,9 @@ gdk_event_translate (GdkEvent *event,
    * native apps). If the app is active, we focus the window and then handle
    * the event, also to match native apps.
    */
-  if ((event_type == NSRightMouseDown ||
-       event_type == NSOtherMouseDown ||
-       event_type == NSLeftMouseDown))
+  if ((event_type == GDK_QUARTZ_RIGHT_MOUSE_DOWN ||
+       event_type == GDK_QUARTZ_OTHER_MOUSE_DOWN ||
+       event_type == GDK_QUARTZ_LEFT_MOUSE_DOWN))
     {
       GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
 
@@ -1546,23 +1555,23 @@ gdk_event_translate (GdkEvent *event,
     }
   switch (event_type)
     {
-    case NSLeftMouseDown:
-    case NSRightMouseDown:
-    case NSOtherMouseDown:
-    case NSLeftMouseUp:
-    case NSRightMouseUp:
-    case NSOtherMouseUp:
+    case GDK_QUARTZ_LEFT_MOUSE_DOWN:
+    case GDK_QUARTZ_RIGHT_MOUSE_DOWN:
+    case GDK_QUARTZ_OTHER_MOUSE_DOWN:
+    case GDK_QUARTZ_LEFT_MOUSE_UP:
+    case GDK_QUARTZ_RIGHT_MOUSE_UP:
+    case GDK_QUARTZ_OTHER_MOUSE_UP:
       fill_button_event (window, event, nsevent, x, y, x_root, y_root);
       break;
 
-    case NSLeftMouseDragged:
-    case NSRightMouseDragged:
-    case NSOtherMouseDragged:
-    case NSMouseMoved:
+    case GDK_QUARTZ_LEFT_MOUSE_DRAGGED:
+    case GDK_QUARTZ_RIGHT_MOUSE_DRAGGED:
+    case GDK_QUARTZ_OTHER_MOUSE_DRAGGED:
+    case GDK_QUARTZ_MOUSE_MOVED:
       fill_motion_event (window, event, nsevent, x, y, x_root, y_root);
       break;
 
-    case NSScrollWheel:
+    case GDK_QUARTZ_SCROLL_WHEEL:
       {
         GdkScrollDirection direction;
        float dx;
@@ -1639,17 +1648,17 @@ gdk_event_translate (GdkEvent *event,
         return_val = FALSE;
       break;
 #endif
-    case NSMouseExited:
+    case GDK_QUARTZ_MOUSE_EXITED:
       if (WINDOW_IS_TOPLEVEL (window))
           [[NSCursor arrowCursor] set];
       /* fall through */
-    case NSMouseEntered:
+    case GDK_QUARTZ_MOUSE_ENTERED:
       return_val = synthesize_crossing_event (window, event, nsevent, x, y, x_root, y_root);
       break;
 
-    case NSKeyDown:
-    case NSKeyUp:
-    case NSFlagsChanged:
+    case GDK_QUARTZ_KEY_DOWN:
+    case GDK_QUARTZ_KEY_UP:
+    case GDK_QUARTZ_FLAGS_CHANGED:
       {
         GdkEventType type;
 
diff --git a/gdk/quartz/gdkkeys-quartz.c b/gdk/quartz/gdkkeys-quartz.c
index f9857831c9..aff299eee8 100644
--- a/gdk/quartz/gdkkeys-quartz.c
+++ b/gdk/quartz/gdkkeys-quartz.c
@@ -124,15 +124,15 @@ const static struct {
   guint keyval;
   unsigned int modmask; /* So we can tell when a mod key is pressed/released */
 } modifier_keys[] = {
-  {  54, GDK_KEY_Meta_R,    NSCommandKeyMask },
-  {  55, GDK_KEY_Meta_L,    NSCommandKeyMask },
-  {  56, GDK_KEY_Shift_L,   NSShiftKeyMask },
-  {  57, GDK_KEY_Caps_Lock, NSAlphaShiftKeyMask },
-  {  58, GDK_KEY_Alt_L,     NSAlternateKeyMask },
-  {  59, GDK_KEY_Control_L, NSControlKeyMask },
-  {  60, GDK_KEY_Shift_R,   NSShiftKeyMask },
-  {  61, GDK_KEY_Alt_R,     NSAlternateKeyMask },
-  {  62, GDK_KEY_Control_R, NSControlKeyMask }
+  {  54, GDK_KEY_Meta_R,    GDK_QUARTZ_COMMAND_KEY_MASK },
+  {  55, GDK_KEY_Meta_L,    GDK_QUARTZ_COMMAND_KEY_MASK },
+  {  56, GDK_KEY_Shift_L,   GDK_QUARTZ_SHIFT_KEY_MASK },
+  {  57, GDK_KEY_Caps_Lock, GDK_QUARTZ_ALPHA_SHIFT_KEY_MASK },
+  {  58, GDK_KEY_Alt_L,     GDK_QUARTZ_ALTERNATE_KEY_MASK },
+  {  59, GDK_KEY_Control_L, GDK_QUARTZ_CONTROL_KEY_MASK },
+  {  60, GDK_KEY_Shift_R,   GDK_QUARTZ_SHIFT_KEY_MASK },
+  {  61, GDK_KEY_Alt_R,     GDK_QUARTZ_ALTERNATE_KEY_MASK },
+  {  62, GDK_KEY_Control_R, GDK_QUARTZ_CONTROL_KEY_MASK }
 };
 
 const static struct {
@@ -783,11 +783,11 @@ _gdk_quartz_keys_event_type (NSEvent *event)
   
   switch ([event type])
     {
-    case NSKeyDown:
+    case GDK_QUARTZ_KEY_DOWN:
       return GDK_KEY_PRESS;
-    case NSKeyUp:
+    case GDK_QUARTZ_KEY_UP:
       return GDK_KEY_RELEASE;
-    case NSFlagsChanged:
+    case GDK_QUARTZ_FLAGS_CHANGED:
       break;
     default:
       g_assert_not_reached ();
diff --git a/gdk/quartz/gdkquartzkeys.h b/gdk/quartz/gdkquartzkeys.h
index f35612e36a..c937288b45 100644
--- a/gdk/quartz/gdkquartzkeys.h
+++ b/gdk/quartz/gdkquartzkeys.h
@@ -45,6 +45,79 @@ typedef struct _GdkQuartzKeymapClass GdkQuartzKeymapClass;
 GDK_AVAILABLE_IN_ALL
 GType gdk_quartz_keymap_get_type (void);
 
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
+typedef enum
+  {
+    GDK_QUARTZ_FLAGS_CHANGED = NSFlagsChanged,
+    GDK_QUARTZ_KEY_UP = NSKeyUp,
+    GDK_QUARTZ_KEY_DOWN = NSKeyDown,
+    GDK_QUARTZ_MOUSE_ENTERED = NSMouseEntered,
+    GDK_QUARTZ_MOUSE_EXITED = NSMouseExited,
+    GDK_QUARTZ_SCROLL_WHEEL = NSScrollWheel,
+    GDK_QUARTZ_MOUSE_MOVED = NSMouseMoved,
+    GDK_QUARTZ_OTHER_MOUSE_DRAGGED = NSOtherMouseDragged,
+    GDK_QUARTZ_RIGHT_MOUSE_DRAGGED = NSRightMouseDragged,
+    GDK_QUARTZ_LEFT_MOUSE_DRAGGED = NSLeftMouseDragged,
+    GDK_QUARTZ_OTHER_MOUSE_UP = NSOtherMouseUp,
+    GDK_QUARTZ_RIGHT_MOUSE_UP = NSRightMouseUp,
+    GDK_QUARTZ_LEFT_MOUSE_UP = NSLeftMouseUp,
+    GDK_QUARTZ_OTHER_MOUSE_DOWN = NSOtherMouseDown,
+    GDK_QUARTZ_RIGHT_MOUSE_DOWN = NSRightMouseDown,
+    GDK_QUARTZ_LEFT_MOUSE_DOWN = NSLeftMouseDown,
+  } GdkQuartzEventType;
+
+typedef enum
+  {
+    GDK_QUARTZ_ALTERNATE_KEY_MASK = NSAlternateKeyMask,
+    GDK_QUARTZ_CONTROL_KEY_MASK = NSControlKeyMask,
+    GDK_QUARTZ_SHIFT_KEY_MASK = NSShiftKeyMask,
+    GDK_QUARTZ_ALPHA_SHIFT_KEY_MASK = NSAlphaShiftKeyMask,
+    GDK_QUARTZ_COMMAND_KEY_MASK = NSCommandKeyMask,
+    GDK_QUARTZ_ANY_EVENT_MASK = NSAnyEventMask,
+  } GdkQuartzEventModifierFlags;
+
+typedef enum
+  {
+   GDK_QUARTZ_EVENT_MASK_ANY = NSAnyEventMask,
+  } GdkQuartzEventMask;
+
+#else
+typedef enum
+  {
+    GDK_QUARTZ_FLAGS_CHANGED = NSEventTypeFlagsChanged,
+    GDK_QUARTZ_KEY_UP = NSEventTypeKeyUp,
+    GDK_QUARTZ_KEY_DOWN = NSEventTypeKeyDown,
+    GDK_QUARTZ_MOUSE_ENTERED = NSEventTypeMouseEntered,
+    GDK_QUARTZ_MOUSE_EXITED = NSEventTypeMouseExited,
+    GDK_QUARTZ_SCROLL_WHEEL = NSEventTypeScrollWheel,
+    GDK_QUARTZ_MOUSE_MOVED = NSEventTypeMouseMoved,
+    GDK_QUARTZ_OTHER_MOUSE_DRAGGED = NSEventTypeOtherMouseDragged,
+    GDK_QUARTZ_RIGHT_MOUSE_DRAGGED = NSEventTypeRightMouseDragged,
+    GDK_QUARTZ_LEFT_MOUSE_DRAGGED = NSEventTypeLeftMouseDragged,
+    GDK_QUARTZ_OTHER_MOUSE_UP = NSEventTypeOtherMouseUp,
+    GDK_QUARTZ_RIGHT_MOUSE_UP = NSEventTypeRightMouseUp,
+    GDK_QUARTZ_LEFT_MOUSE_UP = NSEventTypeLeftMouseUp,
+    GDK_QUARTZ_OTHER_MOUSE_DOWN = NSEventTypeOtherMouseDown,
+    GDK_QUARTZ_RIGHT_MOUSE_DOWN = NSEventTypeRightMouseDown,
+    GDK_QUARTZ_LEFT_MOUSE_DOWN = NSEventTypeLeftMouseDown,
+  } GdkQuartzEventType;
+
+typedef enum
+  {
+   GDK_QUARTZ_ALTERNATE_KEY_MASK = NSEventModifierFlagOption,
+   GDK_QUARTZ_CONTROL_KEY_MASK = NSEventModifierFlagControl,
+   GDK_QUARTZ_SHIFT_KEY_MASK = NSEventModifierFlagShift,
+   GDK_QUARTZ_ALPHA_SHIFT_KEY_MASK = NSEventModifierFlagCapsLock,
+   GDK_QUARTZ_COMMAND_KEY_MASK = NSEventModifierFlagCommand,
+  } GdkQuartzEventModifierFlags;
+
+typedef enum
+  {
+   GDK_QUARTZ_EVENT_MASK_ANY = NSEventMaskAny,
+  } GdkQuartzEventMask;
+
+#endif
+
 G_END_DECLS
 
 #endif /* __GDK_QUARTZ_KEYS_H__ */
diff --git a/gdk/quartz/gdkselection-quartz.c b/gdk/quartz/gdkselection-quartz.c
index c6014a2579..22ad16a3e5 100644
--- a/gdk/quartz/gdkselection-quartz.c
+++ b/gdk/quartz/gdkselection-quartz.c
@@ -172,16 +172,28 @@ _gdk_quartz_display_text_property_to_utf8_list (GdkDisplay    *display,
     }
 }
 
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400
+#define GDK_QUARTZ_URL_PBOARD_TYPE     NSURLPboardType
+#define GDK_QUARTZ_COLOR_PBOARD_TYPE   NSColorPboardType
+#define GDK_QUARTZ_STRING_PBOARD_TYPE  NSStringPboardType
+#define GDK_QUARTZ_TIFF_PBOARD_TYPE    NSTIFFPboardType
+#else
+#define GDK_QUARTZ_URL_PBOARD_TYPE     NSPasteboardTypeURL
+#define GDK_QUARTZ_COLOR_PBOARD_TYPE   NSPasteboardTypeColor
+#define GDK_QUARTZ_STRING_PBOARD_TYPE  NSPasteboardTypeString
+#define GDK_QUARTZ_TIFF_PBOARD_TYPE    NSPasteboardTypeTIFF
+#endif
+
 GdkAtom
 gdk_quartz_pasteboard_type_to_atom_libgtk_only (NSString *type)
 {
-  if ([type isEqualToString:NSStringPboardType])
+  if ([type isEqualToString:GDK_QUARTZ_STRING_PBOARD_TYPE])
     return gdk_atom_intern_static_string ("UTF8_STRING");
-  else if ([type isEqualToString:NSTIFFPboardType])
+  else if ([type isEqualToString:GDK_QUARTZ_TIFF_PBOARD_TYPE])
     return gdk_atom_intern_static_string ("image/tiff");
-  else if ([type isEqualToString:NSColorPboardType])
+  else if ([type isEqualToString:GDK_QUARTZ_COLOR_PBOARD_TYPE])
     return gdk_atom_intern_static_string ("application/x-color");
-  else if ([type isEqualToString:NSURLPboardType])
+  else if ([type isEqualToString:GDK_QUARTZ_URL_PBOARD_TYPE])
     return gdk_atom_intern_static_string ("text/uri-list");
   else
     return gdk_atom_intern ([type UTF8String], FALSE);
@@ -191,13 +203,13 @@ NSString *
 gdk_quartz_target_to_pasteboard_type_libgtk_only (const char *target)
 {
   if (strcmp (target, "UTF8_STRING") == 0)
-    return NSStringPboardType;
+    return GDK_QUARTZ_STRING_PBOARD_TYPE;
   else if (strcmp (target, "image/tiff") == 0)
-    return NSTIFFPboardType;
+    return GDK_QUARTZ_TIFF_PBOARD_TYPE;
   else if (strcmp (target, "application/x-color") == 0)
-    return NSColorPboardType;
+    return GDK_QUARTZ_COLOR_PBOARD_TYPE;
   else if (strcmp (target, "text/uri-list") == 0)
-    return NSURLPboardType;
+    return GDK_QUARTZ_URL_PBOARD_TYPE;
   else
     return [NSString stringWithUTF8String:target];
 }
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index f018e544df..1d200ecab9 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -52,6 +52,27 @@ typedef struct
   GdkWMDecoration decor;
 } FullscreenSavedGeometry;
 
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
+typedef enum
+{
+ GDK_QUARTZ_BORDERLESS_WINDOW = NSBorderlessWindowMask,
+ GDK_QUARTZ_CLOSABLE_WINDOW = NSClosableWindowMask,
+ GDK_QUARTZ_FULLSCREEN_WINDOW = NSFullScreenWindowMask,
+ GDK_QUARTZ_MINIATURIZABLE_WINDOW = NSMiniaturizableWindowMask,
+ GDK_QUARTZ_RESIZABLE_WINDOW = NSResizableWindowMask,
+ GDK_QUARTZ_TITLED_WINDOW = NSTitledWindowMask,
+} GdkQuartzWindowMask;
+#else
+typedef enum
+{
+ GDK_QUARTZ_BORDERLESS_WINDOW = NSWindowStyleMaskBorderless,
+ GDK_QUARTZ_CLOSABLE_WINDOW = NSWindowStyleMaskClosable,
+ GDK_QUARTZ_FULLSCREEN_WINDOW = NSWindowStyleMaskFullScreen,
+ GDK_QUARTZ_MINIATURIZABLE_WINDOW = NSWindowStyleMaskMiniaturizable,
+ GDK_QUARTZ_RESIZABLE_WINDOW = NSWindowStyleMaskResizable,
+ GDK_QUARTZ_TITLED_WINDOW = NSWindowStyleMaskTitled,
+} GdkQuartzWindowMask;
+#endif
 
 #ifndef AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER
 static FullscreenSavedGeometry *get_fullscreen_geometry (GdkWindow *window);
@@ -509,7 +530,11 @@ _gdk_quartz_window_debug_highlight (GdkWindow *window, gint number)
     [debug_window[number] close];
 
   debug_window[number] = [[NSWindow alloc] initWithContentRect:rect
-                                                     styleMask:NSBorderlessWindowMask
+#if MAC_OS_X_VERSION_MIN_REQUIRED < 101200
+                                                     styleMask:(NSUInteger)GDK_QUARTZ_BORDERLESS_WINDOW
+#else
+                                                     
styleMask:(NSWindowStyleMask)GDK_QUARTZ_BORDERLESS_WINDOW
+#endif
                                                       backing:NSBackingStoreBuffered
                                                         defer:NO];
 
@@ -836,14 +861,14 @@ _gdk_quartz_display_create_window_impl (GdkDisplay    *display,
             ((attributes_mask & GDK_WA_TYPE_HINT) &&
               attributes->type_hint == GDK_WINDOW_TYPE_HINT_SPLASHSCREEN))
           {
-            style_mask = NSBorderlessWindowMask;
+            style_mask = GDK_QUARTZ_BORDERLESS_WINDOW;
           }
         else
           {
-            style_mask = (NSTitledWindowMask |
-                          NSClosableWindowMask |
-                          NSMiniaturizableWindowMask |
-                          NSResizableWindowMask);
+            style_mask = (GDK_QUARTZ_TITLED_WINDOW |
+                          GDK_QUARTZ_CLOSABLE_WINDOW |
+                          GDK_QUARTZ_MINIATURIZABLE_WINDOW |
+                          GDK_QUARTZ_RESIZABLE_WINDOW);
           }
 
        impl->toplevel = [[GdkQuartzNSWindow alloc] initWithContentRect:content_rect 
@@ -1583,7 +1608,7 @@ gdk_window_quartz_get_geometry (GdkWindow *window,
        * windows with borders and the root relative coordinates
        * otherwise.
        */
-      if ([impl->toplevel styleMask] == NSBorderlessWindowMask)
+      if ([impl->toplevel styleMask] == GDK_QUARTZ_BORDERLESS_WINDOW)
         {
           _gdk_quartz_window_xy_to_gdk_xy (ns_rect.origin.x,
                                            ns_rect.origin.y + ns_rect.size.height,
@@ -2310,13 +2335,14 @@ gdk_quartz_window_set_decorations (GdkWindow       *window,
   if (decorations == 0 || GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP ||
       impl->type_hint == GDK_WINDOW_TYPE_HINT_SPLASHSCREEN )
     {
-      new_mask = NSBorderlessWindowMask;
+      new_mask = GDK_QUARTZ_BORDERLESS_WINDOW;
     }
   else
     {
       /* FIXME: Honor other GDK_DECOR_* flags. */
-      new_mask = (NSTitledWindowMask | NSClosableWindowMask |
-                    NSMiniaturizableWindowMask | NSResizableWindowMask);
+      new_mask = (GDK_QUARTZ_TITLED_WINDOW | GDK_QUARTZ_CLOSABLE_WINDOW |
+                  GDK_QUARTZ_MINIATURIZABLE_WINDOW |
+                  GDK_QUARTZ_RESIZABLE_WINDOW);
     }
 
   GDK_QUARTZ_ALLOC_POOL;
@@ -2334,14 +2360,14 @@ gdk_quartz_window_set_decorations (GdkWindow       *window,
       /* Properly update the size of the window when the titlebar is
        * added or removed.
        */
-      if (old_mask == NSBorderlessWindowMask &&
-          new_mask != NSBorderlessWindowMask)
+      if (old_mask == GDK_QUARTZ_BORDERLESS_WINDOW &&
+          new_mask != GDK_QUARTZ_BORDERLESS_WINDOW)
         {
           rect = [NSWindow frameRectForContentRect:rect styleMask:new_mask];
 
         }
-      else if (old_mask != NSBorderlessWindowMask &&
-               new_mask == NSBorderlessWindowMask)
+      else if (old_mask != GDK_QUARTZ_BORDERLESS_WINDOW &&
+               new_mask == GDK_QUARTZ_BORDERLESS_WINDOW)
         {
           rect = [NSWindow contentRectForFrameRect:rect styleMask:old_mask];
         }
@@ -2357,13 +2383,14 @@ gdk_quartz_window_set_decorations (GdkWindow       *window,
 
           [(id<CanSetStyleMask>)impl->toplevel setStyleMask:new_mask];
 
-          /* It appears that unsetting and then resetting NSTitledWindowMask
-           * does not reset the title in the title bar as might be expected.
+          /* It appears that unsetting and then resetting
+           * GDK_QUARTZ_TITLED_WINDOW does not reset the title in the
+           * title bar as might be expected.
            *
            * In theory we only need to set this if new_mask includes
-           * NSTitledWindowMask. This behaved extremely oddly when
+           * GDK_QUARTZ_TITLED_WINDOW. This behaved extremely oddly when
            * conditionalized upon that and since it has no side effects (i.e.
-           * if NSTitledWindowMask is not requested, the title will not be
+           * if GDK_QUARTZ_TITLED_WINDOW is not requested, the title will not be
            * displayed) just do it unconditionally. We also must null check
            * 'title' before setting it to avoid crashing.
            */
@@ -2396,7 +2423,7 @@ gdk_quartz_window_set_decorations (GdkWindow       *window,
           [impl->toplevel setContentView:old_view];
         }
 
-      if (new_mask == NSBorderlessWindowMask)
+      if (new_mask == GDK_QUARTZ_BORDERLESS_WINDOW)
         {
           [impl->toplevel setContentSize:rect.size];
           [impl->toplevel setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
@@ -2431,7 +2458,7 @@ gdk_quartz_window_get_decorations (GdkWindow       *window,
   if (decorations)
     {
       /* Borderless is 0, so we can't check it as a bit being set. */
-      if ([impl->toplevel styleMask] == NSBorderlessWindowMask)
+      if ([impl->toplevel styleMask] == GDK_QUARTZ_BORDERLESS_WINDOW)
         {
           *decorations = 0;
         }
@@ -2474,19 +2501,19 @@ gdk_quartz_window_set_functions (GdkWindow    *window,
       NSUInteger mask = [impl->toplevel styleMask];
 
       if (min)
-        mask = mask | NSMiniaturizableWindowMask;
+        mask = mask | GDK_QUARTZ_MINIATURIZABLE_WINDOW;
       else
-        mask = mask & ~NSMiniaturizableWindowMask;
+        mask = mask & ~GDK_QUARTZ_MINIATURIZABLE_WINDOW;
 
       if (max)
-        mask = mask | NSResizableWindowMask;
+        mask = mask | GDK_QUARTZ_RESIZABLE_WINDOW;
       else
-        mask = mask & ~NSResizableWindowMask;
+        mask = mask & ~GDK_QUARTZ_RESIZABLE_WINDOW;
 
       if (close)
-        mask = mask | NSClosableWindowMask;
+        mask = mask | GDK_QUARTZ_CLOSABLE_WINDOW;
       else
-        mask = mask & ~NSClosableWindowMask;
+        mask = mask & ~GDK_QUARTZ_CLOSABLE_WINDOW;
 
       [impl->toplevel setStyleMask:mask];
     }
@@ -2619,7 +2646,7 @@ window_is_fullscreen (GdkWindow *window)
 {
   GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (window->impl);
 
-  return ([impl->toplevel styleMask] & NSFullScreenWindowMask) != 0;
+  return ([impl->toplevel styleMask] & GDK_QUARTZ_FULLSCREEN_WINDOW) != 0;
 }
 
 static void


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