mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-11 13:51:01 -05:00
Update mouse modifiers to only pass shift
The only mouse modifier required right now is the shift key, to prevent passing around unnecessary state, only the shift state is passed to the mouse processors now.
This commit is contained in:
parent
b83a26ffe0
commit
04bfda943a
2 changed files with 11 additions and 11 deletions
|
@ -300,7 +300,7 @@ impl<N: Notify> Processor<N> {
|
|||
},
|
||||
MouseInput { state, button, modifiers, .. } => {
|
||||
*hide_cursor = false;
|
||||
processor.mouse_input(state, button, modifiers);
|
||||
processor.mouse_input(state, button, modifiers.shift);
|
||||
processor.ctx.terminal.dirty = true;
|
||||
},
|
||||
CursorMoved { position: (x, y), modifiers, .. } => {
|
||||
|
@ -310,7 +310,7 @@ impl<N: Notify> Processor<N> {
|
|||
let y = limit(y, 0, processor.ctx.size_info.height as i32);
|
||||
|
||||
*hide_cursor = false;
|
||||
processor.mouse_moved(x as u32, y as u32, modifiers);
|
||||
processor.mouse_moved(x as u32, y as u32, modifiers.shift);
|
||||
|
||||
if !processor.ctx.selection.is_none() {
|
||||
processor.ctx.terminal.dirty = true;
|
||||
|
|
18
src/input.rs
18
src/input.rs
|
@ -253,7 +253,7 @@ impl From<&'static str> for Action {
|
|||
|
||||
impl<'a, A: ActionContext + 'a> Processor<'a, A> {
|
||||
#[inline]
|
||||
pub fn mouse_moved(&mut self, x: u32, y: u32, modifiers: ModifiersState) {
|
||||
pub fn mouse_moved(&mut self, x: u32, y: u32, shift: bool) {
|
||||
self.ctx.mouse_mut().x = x;
|
||||
self.ctx.mouse_mut().y = y;
|
||||
|
||||
|
@ -274,7 +274,7 @@ impl<'a, A: ActionContext + 'a> Processor<'a, A> {
|
|||
|
||||
if self.ctx.mouse_mut().left_button_state == ElementState::Pressed {
|
||||
let report_mode = mode::TermMode::MOUSE_REPORT_CLICK | mode::TermMode::MOUSE_MOTION;
|
||||
if modifiers.shift || !self.ctx.terminal_mode().intersects(report_mode) {
|
||||
if shift || !self.ctx.terminal_mode().intersects(report_mode) {
|
||||
self.ctx.update_selection(Point {
|
||||
line: point.line,
|
||||
col: point.col
|
||||
|
@ -337,7 +337,7 @@ impl<'a, A: ActionContext + 'a> Processor<'a, A> {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn on_mouse_press(&mut self, modifiers: ModifiersState) {
|
||||
pub fn on_mouse_press(&mut self, shift: bool) {
|
||||
let now = Instant::now();
|
||||
let elapsed = self.ctx.mouse_mut().last_click_timestamp.elapsed();
|
||||
self.ctx.mouse_mut().last_click_timestamp = now;
|
||||
|
@ -353,7 +353,7 @@ impl<'a, A: ActionContext + 'a> Processor<'a, A> {
|
|||
},
|
||||
_ => {
|
||||
let report_modes = mode::TermMode::MOUSE_REPORT_CLICK | mode::TermMode::MOUSE_MOTION;
|
||||
if !modifiers.shift && self.ctx.terminal_mode().intersects(report_modes) {
|
||||
if !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, modifiers: ModifiersState) {
|
||||
pub fn on_mouse_release(&mut self, shift: bool) {
|
||||
let report_modes = mode::TermMode::MOUSE_REPORT_CLICK | mode::TermMode::MOUSE_MOTION;
|
||||
if !modifiers.shift && self.ctx.terminal_mode().intersects(report_modes)
|
||||
if !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, modifiers: ModifiersState) {
|
||||
pub fn mouse_input(&mut self, state: ElementState, button: MouseButton, shift: bool) {
|
||||
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(modifiers);
|
||||
self.on_mouse_press(shift);
|
||||
},
|
||||
ElementState::Released => {
|
||||
self.on_mouse_release(modifiers);
|
||||
self.on_mouse_release(shift);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue