diff options
author | Christian Duerr <contact@christianduerr.com> | 2018-01-03 17:52:49 +0100 |
---|---|---|
committer | Joe Wilm <jwilm@users.noreply.github.com> | 2018-01-03 11:15:57 -0800 |
commit | f625257fc8e5ca1b71c6e292b10e38fa684a85a7 (patch) | |
tree | 114c8391a1d25c18e9155e82e7618e80c5cb7663 | |
parent | f6f5a73528635d9da83f71bc9121dbb105eae0ad (diff) | |
download | alacritty-f625257fc8e5ca1b71c6e292b10e38fa684a85a7.tar.gz alacritty-f625257fc8e5ca1b71c6e292b10e38fa684a85a7.zip |
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.
-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 { |