From f625257fc8e5ca1b71c6e292b10e38fa684a85a7 Mon Sep 17 00:00:00 2001 From: Christian Duerr Date: Wed, 3 Jan 2018 17:52:49 +0100 Subject: Pass ModifiersState to mouse input as whole ModifiersState is now passed to the mouse methods in `input.rs` as a whole instead of just passing the `shift` state. This should make it a bit easier to do changes in the future. --- src/event.rs | 2 +- src/input.rs | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src') 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 Processor { }, 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 { -- cgit