From a58770ee1b037fd39a20bd3005468b5256592b0f Mon Sep 17 00:00:00 2001 From: Stefan Haller Date: Thu, 17 Oct 2024 10:59:53 +0200 Subject: [PATCH] Fix pressing shift-down after clicking in diff view When clicking in a single-file diff view to enter staging (or custom patch editing, when coming from the commit files panel), and then pressing shift-down or shift-up to select a range, it would move the selected line rather than creating a range. Only on the next press would it start to select a range from there. This is very similar to the fix we made for pressing escape in 0e4d266a52. --- pkg/gui/patch_exploring/state.go | 2 +- pkg/integration/tests/ui/range_select.go | 12 ++---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/pkg/gui/patch_exploring/state.go b/pkg/gui/patch_exploring/state.go index 40a28e7f7..1535e1c0f 100644 --- a/pkg/gui/patch_exploring/state.go +++ b/pkg/gui/patch_exploring/state.go @@ -94,7 +94,7 @@ func (s *State) ToggleStickySelectRange() { } func (s *State) ToggleSelectRange(sticky bool) { - if s.selectMode == RANGE { + if s.SelectingRange() { s.selectMode = LINE } else { s.selectMode = RANGE diff --git a/pkg/integration/tests/ui/range_select.go b/pkg/integration/tests/ui/range_select.go index b6fdf362e..37c63e1d0 100644 --- a/pkg/integration/tests/ui/range_select.go +++ b/pkg/integration/tests/ui/range_select.go @@ -159,19 +159,11 @@ var RangeSelect = NewIntegrationTest(NewIntegrationTestArgs{ SelectedLines( Contains("line 1"), ). - Press(keys.Universal.RangeSelectDown) - if lineIdxOfFirstItem == 6 { - v.SelectedLines( - // bug: it moved to line 2 instead of selecting both line 1 and line 2 - Contains("line 2"), - ) - } else { - // works correctly in list views though - v.SelectedLines( + Press(keys.Universal.RangeSelectDown). + SelectedLines( Contains("line 1"), Contains("line 2"), ) - } } assertRangeSelectBehaviour(t.Views().Commits().Focus(), t.Views().Branches(), 0)