Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriain holmes <iain@xamarin.com>2017-05-26 18:07:14 +0300
committeriain holmes <iain@xamarin.com>2017-05-26 18:58:28 +0300
commitd953cf701b9f0c41d99ecaa54ccf822bc42f7043 (patch)
treec0b024922e2b1026c220f03548613d5fbe973479 /main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper
parent0cfac2abe4e3682701ca7f88907860e11bb7712b (diff)
[A11y] Prevent a crash when interacting with the text editor
Diffstat (limited to 'main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper')
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs19
1 files changed, 18 insertions, 1 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 bc4248a5cb..dc0ddd15ec 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AtkCocoaHelper/AtkCocoaHelperMac.cs
@@ -845,6 +845,16 @@ namespace MonoDevelop.Components.AtkCocoaHelper
p.GetRangeForPosition = value;
}
}
+ public Func<AtkCocoa.Range> GetVisibleCharacterRange {
+ set {
+ var p = realProxyElement as RealAccessibilityElementNavigableStaticTextProxy;
+ if (p == null) {
+ throw new Exception ("Not a Text element");
+ }
+
+ p.GetVisibleCharacterRange = value;
+ }
+ }
}
class RealAccessibilityElementProxy : NSAccessibilityElement, INSAccessibility
@@ -1406,6 +1416,13 @@ namespace MonoDevelop.Components.AtkCocoaHelper
}
}
+ public override NSRange AccessibilityVisibleCharacterRange {
+ get {
+ var realRange = GetVisibleCharacterRange ();
+ return new NSRange (realRange.Location, realRange.Length);
+ }
+ }
+
public Func<string> Contents { get; set; }
public Func<int> NumberOfCharacters { get; set; }
public Func<int> InsertionPointLineNumber { get; set; }
@@ -1416,6 +1433,7 @@ namespace MonoDevelop.Components.AtkCocoaHelper
public Func<int, AtkCocoa.Range> GetRangeForIndex { get; set; }
public Func<int, AtkCocoa.Range> GetStyleRangeForIndex { get; set; }
public Func<Point, AtkCocoa.Range> GetRangeForPosition { get; set; }
+ public Func<AtkCocoa.Range> GetVisibleCharacterRange { get; set; }
// Returned frame is in screen coordinate space
[Export ("accessibilityFrameForRange:")]
@@ -1450,7 +1468,6 @@ namespace MonoDevelop.Components.AtkCocoaHelper
NSRange AccessibilityRangeForLine (nint line)
{
var range = GetRangeForLine ((int)line);
-
return new NSRange (range.Location, range.Length);
}