diff --git a/src/terminal.go b/src/terminal.go index aa523434..233ec8fc 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -4678,6 +4678,9 @@ func (t *Terminal) Loop() error { if onFocus, prs := t.keymap[tui.Focus.AsEvent()]; prs && iter < maxFocusEvents { if newIndex := t.currentIndex(); newIndex != currentIndex { t.lastFocus = newIndex + if t.infoCommand != "" { + req(reqInfo) + } actions = onFocus continue } diff --git a/test/test_go.rb b/test/test_go.rb index 2b9499e0..3331d3c8 100755 --- a/test/test_go.rb +++ b/test/test_go.rb @@ -3008,6 +3008,13 @@ class TestGoFZF < TestBase tmux.until { assert_match(%r{ --1/10000/10000-- *$}, _1[-1]) } end + def test_info_command_and_focus + tmux.send_keys(%(seq 100 | #{FZF} --separator x --info-command 'echo $FZF_POS' --bind focus:clear-query), :Enter) + tmux.until { |lines| tmux.until { assert_match(%r{^ 1 xx}, _1[-2]) } } + tmux.send_keys :Up + tmux.until { |lines| tmux.until { assert_match(%r{^ 2 xx}, _1[-2]) } } + 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 }