From 5c1d404acca099d947a3f6fa6fb0c0b9125fddcf Mon Sep 17 00:00:00 2001 From: Neil Hodgson Date: Mon, 26 Oct 2015 16:20:55 +1100 Subject: Make timers active in modal dialogs by adding them to NSModalPanelRunLoopMode. From Mike Lischke. --- cocoa/ScintillaCocoa.mm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index 31538aea4..954854af6 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -370,7 +370,7 @@ const CGFloat paddingHighlightY = 2; [notificationQueue enqueueNotification: notification postingStyle: NSPostWhenIdle coalesceMask: (NSNotificationCoalescingOnName | NSNotificationCoalescingOnSender) - forModes: nil]; + forModes: @[NSDefaultRunLoopMode, NSModalPanelRunLoopMode]]; } //-------------------------------------------------------------------------------------------------- @@ -969,7 +969,8 @@ void ScintillaCocoa::FineTickerStart(TickReason reason, int millis, int toleranc [fineTimer setTolerance: tolerance / 1000.0]; } timers[reason] = fineTimer; - [[NSRunLoop currentRunLoop] addTimer:fineTimer forMode:NSDefaultRunLoopMode]; + [NSRunLoop.currentRunLoop addTimer: fineTimer forMode: NSDefaultRunLoopMode]; + [NSRunLoop.currentRunLoop addTimer: fineTimer forMode: NSModalPanelRunLoopMode]; } //-------------------------------------------------------------------------------------------------- @@ -1001,6 +1002,7 @@ bool ScintillaCocoa::SetIdle(bool on) selector: @selector(idleTimerFired:) userInfo: nil repeats: YES]; + [NSRunLoop.currentRunLoop addTimer: idleTimer forMode: NSModalPanelRunLoopMode]; idler.idlerID = reinterpret_cast(idleTimer); } else -- cgit v1.2.3