diff options
author | Junegunn Choi <junegunn.c@gmail.com> | 2024-05-03 11:56:54 +0900 |
---|---|---|
committer | Junegunn Choi <junegunn.c@gmail.com> | 2024-05-03 12:18:34 +0900 |
commit | f6aa28c380b5adda251fa9fe33dfb4a2ae721b1f (patch) | |
tree | 7e7b0fecf11e1f7fec099fc530e06b4f5b65c96b | |
parent | dba1644518a74a6263f76900b04d7b7c0ea6e894 (diff) |
Fix --info inline-right not properly clearing the previous output
(seq 100000; sleep 1) | fzf --info inline-right --bind load:change-query:x
-rw-r--r-- | src/terminal.go | 6 | ||||
-rwxr-xr-x | test/test_go.rb | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/terminal.go b/src/terminal.go index e9ec363b..932553ed 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -1715,9 +1715,11 @@ func (t *Terminal) printInfo() { if t.infoStyle == infoInlineRight { if len(t.infoPrefix) == 0 { - pos = util.Max(pos, t.window.Width()-util.StringWidth(output)-3) + t.move(line, pos, false) + newPos := util.Max(pos, t.window.Width()-util.StringWidth(output)-3) + t.window.Print(strings.Repeat(" ", newPos-pos)) + pos = newPos if pos < t.window.Width() { - t.move(line, pos, false) printSpinner() pos++ } diff --git a/test/test_go.rb b/test/test_go.rb index 2f93403c..6cd44985 100755 --- a/test/test_go.rb +++ b/test/test_go.rb @@ -2970,6 +2970,13 @@ class TestGoFZF < TestBase tmux.until { assert_match(%r{[⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏] 100/100}, _1[-1]) } end + def test_info_inline_right_clearance + tmux.send_keys "seq 100000 | #{FZF} --info inline-right", :Enter + tmux.until { assert_match(%r{100000/100000}, _1[-1]) } + tmux.send_keys 'x' + tmux.until { assert_match(%r{ 0/100000}, _1[-1]) } + end + def test_prev_next_selected tmux.send_keys 'seq 10 | fzf --multi --bind ctrl-n:next-selected,ctrl-p:prev-selected', :Enter tmux.until { |lines| assert_equal 10, lines.item_count } |