From a9d17d860c01c8f6dc6e581af09bf50a9d96dc7a Mon Sep 17 00:00:00 2001 From: ed Date: Mon, 5 Jul 2021 09:49:58 +0100 Subject: [PATCH] macOS Accessibility: Fixed crash due to availability of NSAccessibilityLayoutChangedNotification on < 10.9 --- .../native/accessibility/juce_mac_Accessibility.mm | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm b/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm index 347ab48939..b72911c5b4 100644 --- a/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm +++ b/modules/juce_gui_basics/native/accessibility/juce_mac_Accessibility.mm @@ -31,6 +31,12 @@ namespace juce using NSAccessibilityNotificationName = NSString*; #endif +#if (! defined MAC_OS_X_VERSION_10_9) || MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9 + const NSAccessibilityNotificationName NSAccessibilityLayoutChangedNotificationJuce = @"AXLayoutChanged"; +#else + const NSAccessibilityNotificationName NSAccessibilityLayoutChangedNotificationJuce = NSAccessibilityLayoutChangedNotification; +#endif + #if JUCE_OBJC_HAS_AVAILABLE_FEATURE || (defined (MAC_OS_X_VERSION_10_10) && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10) #define JUCE_NATIVE_ACCESSIBILITY_INCLUDED 1 @@ -1071,7 +1077,7 @@ void notifyAccessibilityEventInternal (const AccessibilityHandler& handler, Inte { case InternalAccessibilityEvent::elementCreated: return NSAccessibilityCreatedNotification; case InternalAccessibilityEvent::elementDestroyed: return NSAccessibilityUIElementDestroyedNotification; - case InternalAccessibilityEvent::elementMovedOrResized: return NSAccessibilityLayoutChangedNotification; + case InternalAccessibilityEvent::elementMovedOrResized: return NSAccessibilityLayoutChangedNotificationJuce; case InternalAccessibilityEvent::focusChanged: return NSAccessibilityFocusedUIElementChangedNotification; case InternalAccessibilityEvent::windowOpened: return NSAccessibilityWindowCreatedNotification; case InternalAccessibilityEvent::windowClosed: break; @@ -1095,7 +1101,7 @@ void AccessibilityHandler::notifyAccessibilityEvent (AccessibilityEvent eventTyp case AccessibilityEvent::textChanged: case AccessibilityEvent::valueChanged: return NSAccessibilityValueChangedNotification; case AccessibilityEvent::titleChanged: return NSAccessibilityTitleChangedNotification; - case AccessibilityEvent::structureChanged: return NSAccessibilityLayoutChangedNotification; + case AccessibilityEvent::structureChanged: return NSAccessibilityLayoutChangedNotificationJuce; } return NSAccessibilityNotificationName{};