From 525040238e6b7cdec6b99962a60c8e0ccbd2b2e0 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sat, 2 Nov 2019 19:41:59 +0900 Subject: Fix behavior of 'deselect-all' to only deselect matches To make it consistent with select-all and toggle-all. Close #1364 --- src/terminal.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/terminal.go b/src/terminal.go index 34df2105..4f66fdc0 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -1837,8 +1837,12 @@ func (t *Terminal) Loop() { } case actDeselectAll: if t.multi > 0 { - t.selected = make(map[int32]selectedItem) - t.version++ + for i := 0; i < t.merger.Length() && len(t.selected) > 0; i++ { + item := t.merger.Get(i).item + if _, found := t.selected[item.Index()]; found { + t.deselectItem(item) + } + } req(reqList, reqInfo) } case actToggle: -- cgit v1.2.3