Remove right click deselection

Fixes #3144.
This commit is contained in:
Stefan Devai 2020-03-19 13:39:00 +01:00 committed by GitHub
parent 01e603519a
commit 3d7a789fd3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 14 deletions

View File

@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Changed ### Changed
- Block cursor is no longer inverted at the start/end of a selection - Block cursor is no longer inverted at the start/end of a selection
- Preserve selection on non-LMB or mouse mode clicks
## 0.4.2-dev ## 0.4.2-dev

View File

@ -504,23 +504,28 @@ impl<'a, T: EventListener, A: ActionContext<T>> Processor<'a, T, A> {
ClickState::TripleClick ClickState::TripleClick
} }
_ => { _ => {
// Don't launch URLs if this click cleared the selection if button == MouseButton::Left
self.ctx.mouse_mut().block_url_launcher = !self.ctx.selection_is_empty(); && (self.ctx.modifiers().shift()
|| !self.ctx.terminal().mode().intersects(TermMode::MOUSE_MODE))
{
// Don't launch URLs if this click cleared the selection
self.ctx.mouse_mut().block_url_launcher = !self.ctx.selection_is_empty();
self.ctx.clear_selection(); self.ctx.clear_selection();
// Start new empty selection // Start new empty selection
let side = self.ctx.mouse().cell_side; let side = self.ctx.mouse().cell_side;
if self.ctx.modifiers().ctrl() { if self.ctx.modifiers().ctrl() {
self.ctx.start_selection(SelectionType::Block, point, side); self.ctx.start_selection(SelectionType::Block, point, side);
} else { } else {
self.ctx.start_selection(SelectionType::Simple, point, side); self.ctx.start_selection(SelectionType::Simple, point, side);
} }
// Move vi mode cursor to mouse position // Move vi mode cursor to mouse position
if self.ctx.terminal().mode().contains(TermMode::VI) { if self.ctx.terminal().mode().contains(TermMode::VI) {
// Update vi mode cursor position on click // Update vi mode cursor position on click
self.ctx.terminal_mut().vi_mode_cursor.point = point; self.ctx.terminal_mut().vi_mode_cursor.point = point;
}
} }
if !self.ctx.modifiers().shift() && self.ctx.mouse_mode() { if !self.ctx.modifiers().shift() && self.ctx.mouse_mode() {