diff options
author | Neil Hodgson <nyamatongwe@gmail.com> | 2017-10-26 17:22:57 +1100 |
---|---|---|
committer | Neil Hodgson <nyamatongwe@gmail.com> | 2017-10-26 17:22:57 +1100 |
commit | 24bdb0eb9a2f80c577476580269e96093e5429e8 (patch) | |
tree | 4e0e09100df89332303b10f222301d1c4c9a4a20 | |
parent | 783227a0b5abfee66c10d1328b79b026b393946f (diff) | |
download | scintilla-mirror-24bdb0eb9a2f80c577476580269e96093e5429e8.tar.gz |
Disable the animated find indicator on macOS 10.13 where it fails.
-rw-r--r-- | cocoa/ScintillaCocoa.mm | 22 |
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: |