aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNeil Hodgson <nyamatongwe@gmail.com>2017-10-26 17:22:57 +1100
committerNeil Hodgson <nyamatongwe@gmail.com>2017-10-26 17:22:57 +1100
commit24bdb0eb9a2f80c577476580269e96093e5429e8 (patch)
tree4e0e09100df89332303b10f222301d1c4c9a4a20
parent783227a0b5abfee66c10d1328b79b026b393946f (diff)
downloadscintilla-mirror-24bdb0eb9a2f80c577476580269e96093e5429e8.tar.gz
Disable the animated find indicator on macOS 10.13 where it fails.
-rw-r--r--cocoa/ScintillaCocoa.mm22
1 files changed, 20 insertions, 2 deletions
diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm
index 7fc0a8c89..e4237fb1b 100644
--- a/cocoa/ScintillaCocoa.mm
+++ b/cocoa/ScintillaCocoa.mm
@@ -800,6 +800,20 @@ sptr_t scintilla_send_message(void *sci, unsigned int iMessage, uptr_t wParam, s
//--------------------------------------------------------------------------------------------------
+namespace {
+
+/**
+ * The animated find indicator fails with a "bogus layer size" message on macOS 10.13.
+ */
+
+bool SupportAnimatedFind() {
+ return floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_12_2;
+}
+
+}
+
+//--------------------------------------------------------------------------------------------------
+
/**
* That's our fake window procedure. On Windows each window has a dedicated procedure to handle
* commands (also used to synchronize UI and background threads), which is not the case in Cocoa.
@@ -838,11 +852,15 @@ sptr_t ScintillaCocoa::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lPar
break;
case SCI_FINDINDICATORSHOW:
- ShowFindIndicatorForRange(NSMakeRange(wParam, lParam-wParam), YES);
+ if (SupportAnimatedFind()) {
+ ShowFindIndicatorForRange(NSMakeRange(wParam, lParam-wParam), YES);
+ }
return 0;
case SCI_FINDINDICATORFLASH:
- ShowFindIndicatorForRange(NSMakeRange(wParam, lParam-wParam), NO);
+ if (SupportAnimatedFind()) {
+ ShowFindIndicatorForRange(NSMakeRange(wParam, lParam-wParam), NO);
+ }
return 0;
case SCI_FINDINDICATORHIDE: