diff options
Diffstat (limited to 'main')
-rw-r--r-- | main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs index 4edb386006..2180972ffd 100644 --- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs +++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs @@ -313,6 +313,8 @@ namespace MonoDevelop.Components.AtkCocoaHelper static readonly IntPtr selSetAccessibilityServesAsTitleForUIElements_Handle = Selector.GetHandle ("setAccessibilityServesAsTitleForUIElements:"); static readonly IntPtr selAccessibilityServesAsTitleForUIElements_Handle = Selector.GetHandle ("accessibilityServesAsTitleForUIElements:"); + static readonly Selector selAccessibilityServesAsTitleForUIElements = new Selector ("accessibilityServesAsTitleForUIElements:"); + public static void SetTitleFor (this Atk.Object o, params Atk.Object [] objects) { var nsa = GetNSAccessibilityElement (o); @@ -359,6 +361,12 @@ namespace MonoDevelop.Components.AtkCocoaHelper return; } + // bug #940756 suggests that some elements do not respond to this selector + // so check before sending so it doesn't throw an ObjC exception + if (!((NSObject)titleNsa).RespondsToSelector (selAccessibilityServesAsTitleForUIElements)) { + return; + } + IntPtr ptr = Messaging.IntPtr_objc_msgSend (titleNsa.Handle, selAccessibilityServesAsTitleForUIElements_Handle); using (var array = Runtime.GetNSObject<NSArray> (ptr)) using (var copy = array != null ? (NSMutableArray)array.MutableCopy () : new NSMutableArray (1)) { |