From 047286c1827b8274f87fd0e8857a7a5ffafc8146 Mon Sep 17 00:00:00 2001 From: kyoto7250 <50972773+kyoto7250@users.noreply.github.com> Date: Fri, 8 Apr 2022 11:04:27 +0900 Subject: [PATCH] If already selected, V key extend the range and selected_column is not change because this key match movements with other keys --- src/components/table.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/components/table.rs b/src/components/table.rs index 5855f72..80a8e37 100644 --- a/src/components/table.rs +++ b/src/components/table.rs @@ -201,14 +201,17 @@ impl TableComponent { } fn expand_selected_by_horizontal_line(&mut self) { - if self.selection_area_corner.is_none() { - self.selected_column = 0; - self.selection_area_corner = Some(( - self.headers.len().saturating_sub(1), - self.selected_row.selected().unwrap_or(0), - )); + let horizontal_length = self.headers.len().saturating_sub(1); + let vertical_length = self.selected_row.selected().unwrap_or(0); + + if let Some((x, y)) = self.selection_area_corner { + if x == horizontal_length { + self.selection_area_corner = None; + } else { + self.selection_area_corner = Some((horizontal_length, y)); + } } else { - self.selection_area_corner = None; + self.selection_area_corner = Some((horizontal_length, vertical_length)); } }