From a6b42789b55688822b762a20865c8d2c812125b9 Mon Sep 17 00:00:00 2001 From: Jan D Date: Sat, 15 Nov 2014 19:20:37 +0100 Subject: [PATCH] Backport: Fix for 18993. * nsterm.m (ns_send_appdefined): Check for application defined event on Cocoa (Bug#18993). Backport from trunk. --- src/ChangeLog | 5 +++++ src/nsterm.m | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 2ea5d29d3b2..4aa9958a52f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-11-15 Jan Djärv + + * nsterm.m (ns_send_appdefined): Check for application defined + event on Cocoa (Bug#18993). Backport from trunk. + 2014-11-15 Eli Zaretskii * window.c (window_scroll_pixel_based): Avoid truncation/rounding diff --git a/src/nsterm.m b/src/nsterm.m index b3a4e08e5f6..7e2d4beac6a 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -3434,6 +3434,21 @@ ns_send_appdefined (int value) /* Only post this event if we haven't already posted one. This will end the [NXApp run] main loop after having processed all events queued at this moment. */ + +#ifdef NS_IMPL_COCOA + if (! send_appdefined) + { + /* OSX 10.10.1 swallows the AppDefined event we are sending ourselves + in certain situations (rapid incoming events). + So check if we have one, if not add one. */ + NSEvent *appev = [NSApp nextEventMatchingMask:NSApplicationDefinedMask + untilDate:[NSDate distantPast] + inMode:NSDefaultRunLoopMode + dequeue:NO]; + if (! appev) send_appdefined = YES; + } +#endif + if (send_appdefined) { NSEvent *nxev; -- 2.39.5