diff options
-rw-r--r-- | src/event.rs | 2 | ||||
-rw-r--r-- | src/input.rs | 16 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/event.rs b/src/event.rs index c43ba2b3..22b42ae7 100644 --- a/src/event.rs +++ b/src/event.rs @@ -300,7 +300,7 @@ impl<N: Notify> Processor<N> { }, MouseInput { state, button, modifiers, .. } => { *hide_cursor = false; - processor.mouse_input(state, button, modifiers.shift); + processor.mouse_input(state, button, modifiers); processor.ctx.terminal.dirty = true; }, CursorMoved { position: (x, y), modifiers, .. } => { diff --git a/src/input.rs b/src/input.rs index 2fea68fd..bc941710 100644 --- a/src/input.rs +++ b/src/input.rs @@ -337,7 +337,7 @@ impl<'a, A: ActionContext + 'a> Processor<'a, A> { } } - pub fn on_mouse_press(&mut self, shift: bool) { + pub fn on_mouse_press(&mut self, modifiers: ModifiersState) { let now = Instant::now(); let elapsed = self.ctx.mouse_mut().last_click_timestamp.elapsed(); self.ctx.mouse_mut().last_click_timestamp = now; @@ -354,7 +354,7 @@ impl<'a, A: ActionContext + 'a> Processor<'a, A> { _ => { self.ctx.clear_selection(); let report_modes = mode::TermMode::MOUSE_REPORT_CLICK | mode::TermMode::MOUSE_MOTION; - if !shift && self.ctx.terminal_mode().intersects(report_modes) { + if !modifiers.shift && self.ctx.terminal_mode().intersects(report_modes) { self.mouse_report(0); return; } @@ -364,9 +364,9 @@ impl<'a, A: ActionContext + 'a> Processor<'a, A> { }; } - pub fn on_mouse_release(&mut self, shift: bool) { + pub fn on_mouse_release(&mut self, modifiers: ModifiersState) { let report_modes = mode::TermMode::MOUSE_REPORT_CLICK | mode::TermMode::MOUSE_MOTION; - if !shift && self.ctx.terminal_mode().intersects(report_modes) + if !modifiers.shift && self.ctx.terminal_mode().intersects(report_modes) { self.mouse_report(3); return; @@ -456,16 +456,16 @@ impl<'a, A: ActionContext + 'a> Processor<'a, A> { } } - pub fn mouse_input(&mut self, state: ElementState, button: MouseButton, shift: bool) { + pub fn mouse_input(&mut self, state: ElementState, button: MouseButton, modifiers: ModifiersState) { if let MouseButton::Left = button { let state = mem::replace(&mut self.ctx.mouse_mut().left_button_state, state); if self.ctx.mouse_mut().left_button_state != state { match self.ctx.mouse_mut().left_button_state { ElementState::Pressed => { - self.on_mouse_press(shift); + self.on_mouse_press(modifiers); }, ElementState::Released => { - self.on_mouse_release(shift); + self.on_mouse_release(modifiers); } } } @@ -703,7 +703,7 @@ mod tests { }; if let Event::WindowEvent { event: WindowEvent::MouseInput { state, button, modifiers, .. }, .. } = $input { - processor.mouse_input(state, button, modifiers.shift); + processor.mouse_input(state, button, modifiers); }; assert!(match mouse.click_state { |