@@ -427,14 +427,19 @@ MouseInputData data(
427427 modifiers
428428 );
429429
430- if (MouseInputEvent ().send (data) != ListenerResult::Propagate) return ;
430+ Loader::get ()->queueInMainThread ([data = std::move (data)] mutable {
431+ MouseInputEvent ().send (data);
432+ });
431433
432434 [self performSelector: sel withObject: event];
433435}
434436
435437void rightMouseDraggedHook (EAGLView* self, SEL sel, NSEvent * event) {
436438 NSPoint point = [self convertPoint: [event locationInWindow ] fromView: nil ];
437- if (MouseMoveEvent ().send (point.x , point.y ) != ListenerResult::Propagate) return ;
439+
440+ Loader::get ()->queueInMainThread ([point] {
441+ MouseMoveEvent ().send (point.x , point.y );
442+ });
438443
439444 [self performSelector: sel withObject: event];
440445}
@@ -449,7 +454,9 @@ MouseInputData data(
449454 modifiers
450455 );
451456
452- if (MouseInputEvent ().send (data) != ListenerResult::Propagate) return ;
457+ Loader::get ()->queueInMainThread ([data = std::move (data)] mutable {
458+ MouseInputEvent ().send (data);
459+ });
453460
454461 [self performSelector: sel withObject: event];
455462}
@@ -464,14 +471,19 @@ MouseInputData data(
464471 modifiers
465472 );
466473
467- if (MouseInputEvent ().send (data) != ListenerResult::Propagate) return ;
474+ Loader::get ()->queueInMainThread ([data = std::move (data)] mutable {
475+ MouseInputEvent ().send (data);
476+ });
468477
469478 [self performSelector: sel withObject: event];
470479}
471480
472481void otherMouseDraggedHook (EAGLView* self, SEL sel, NSEvent * event) {
473482 NSPoint point = [self convertPoint: [event locationInWindow ] fromView: nil ];
474- if (MouseMoveEvent ().send (point.x , point.y ) != ListenerResult::Propagate) return ;
483+
484+ Loader::get ()->queueInMainThread ([point] {
485+ MouseMoveEvent ().send (point.x , point.y );
486+ });
475487
476488 [self performSelector: sel withObject: event];
477489}
@@ -486,7 +498,9 @@ MouseInputData data(
486498 modifiers
487499 );
488500
489- if (MouseInputEvent ().send (data) != ListenerResult::Propagate) return ;
501+ Loader::get ()->queueInMainThread ([data = std::move (data)] mutable {
502+ MouseInputEvent ().send (data);
503+ });
490504
491505 [self performSelector: sel withObject: event];
492506}
0 commit comments