XQuartz: Ensure scroll events are delivered to a single window (not both X11 and AppKit)

Fixes: https://github.com/XQuartz/XQuartz/issues/130
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
(cherry picked from commit 4532b696c6)
This commit is contained in:
Jeremy Huddleston Sequoia 2022-06-16 00:10:26 -07:00
parent 140d9a0f75
commit e48acd9c40

View File

@ -267,6 +267,8 @@ QuartzModeBundleInit(void);
case NSLeftMouseUp:
case NSRightMouseUp:
case NSOtherMouseUp:
case NSScrollWheel:
if ([e window] != nil) {
/* Pointer event has an (AppKit) window. Probably something for the kit. */
for_x = NO;
@ -466,12 +468,14 @@ QuartzModeBundleInit(void);
break; /* for gcc */
}
if (for_appkit) [super sendEvent:e];
if (for_appkit) {
[super sendEvent:e];
}
if (for_x) {
dispatch_async(eventTranslationQueue, ^{
[self sendX11NSEvent:e];
});
[self sendX11NSEvent:e];
});
}
}