1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-23 13:21:38 +03:00

Capture middle mouse events on macos

This commit is contained in:
Gus Wynn 2021-03-31 13:19:32 -07:00 committed by Wez Furlong
parent 217dbfb99d
commit 0bae61d580

View File

@ -1496,6 +1496,10 @@ impl WindowView {
Self::mouse_common(this, nsevent, MouseEventKind::Release(MousePress::Right));
}
extern "C" fn other_mouse_up(this: &mut Object, _sel: Sel, nsevent: id) {
Self::mouse_common(this, nsevent, MouseEventKind::Release(MousePress::Middle));
}
extern "C" fn scroll_wheel(this: &mut Object, _sel: Sel, nsevent: id) {
let precise = unsafe { nsevent.hasPreciseScrollingDeltas() } == YES;
let scale = if precise {
@ -1563,6 +1567,10 @@ impl WindowView {
Self::mouse_common(this, nsevent, MouseEventKind::Press(MousePress::Right));
}
extern "C" fn other_mouse_down(this: &mut Object, _sel: Sel, nsevent: id) {
Self::mouse_common(this, nsevent, MouseEventKind::Press(MousePress::Middle));
}
extern "C" fn mouse_moved_or_dragged(this: &mut Object, _sel: Sel, nsevent: id) {
Self::mouse_common(this, nsevent, MouseEventKind::Move);
}
@ -1956,6 +1964,14 @@ impl WindowView {
sel!(rightMouseUp:),
Self::right_mouse_up as extern "C" fn(&mut Object, Sel, id),
);
cls.add_method(
sel!(otherMouseDown:),
Self::other_mouse_down as extern "C" fn(&mut Object, Sel, id),
);
cls.add_method(
sel!(otherMouseUp:),
Self::other_mouse_up as extern "C" fn(&mut Object, Sel, id),
);
cls.add_method(
sel!(scrollWheel:),
Self::scroll_wheel as extern "C" fn(&mut Object, Sel, id),