Skip to content

Commit 05bf789

Browse files
committed
queue additional mouse events on main thread (mac)
1 parent c5cc677 commit 05bf789

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

loader/src/platform/mac/input.mm

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

435437
void 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

472481
void 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

Comments
 (0)