From: Jan D Date: Sat, 15 Nov 2014 18:20:37 +0000 (+0100) Subject: Backport: Fix for 18993. X-Git-Tag: emacs-24.4.90~215 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=a6b42789b55688822b762a20865c8d2c812125b9;p=emacs.git Backport: Fix for 18993. * nsterm.m (ns_send_appdefined): Check for application defined event on Cocoa (Bug#18993). Backport from trunk. --- 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;