diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2025-07-06 20:04:03 +0900 |
|---|---|---|
| committer | Junegunn Choi <junegunn.c@gmail.com> | 2025-07-06 20:24:23 +0900 |
| commit | d364a1122e23149a6fb2e060fe5f7a0dbb752b20 (patch) | |
| tree | e83d89f3d90c0c13d6d65038279303e8a696e47d | |
| parent | fb570e94e79571ede2b467fadab36fb245da0d34 (diff) | |
| download | fzf-d364a1122e23149a6fb2e060fe5f7a0dbb752b20.tar.gz | |
Fix regression where header is not updated
| -rw-r--r-- | src/terminal.go | 15 | ||||
| -rw-r--r-- | test/test_core.rb | 5 |
2 files changed, 13 insertions, 7 deletions
diff --git a/src/terminal.go b/src/terminal.go index 634d7859..adffbab5 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -2901,16 +2901,19 @@ func (t *Terminal) resizeIfNeeded() bool { // Check if the header borders are used and header has changed allHeaderLines := t.visibleHeaderLines() primaryHeaderLines := allHeaderLines - if t.hasHeaderLinesWindow() { + needHeaderWindow := t.hasHeaderWindow() + needHeaderLinesWindow := t.hasHeaderLinesWindow() + if needHeaderLinesWindow { primaryHeaderLines -= t.headerLines } // FIXME: Full redraw is triggered if there are too many lines in the header // so that the header window cannot display all of them. - needHeaderLinesWindow := t.hasHeaderLinesWindow() - if (t.headerBorderShape.Visible() || needHeaderLinesWindow) && - (t.headerWindow == nil && primaryHeaderLines > 0 || t.headerWindow != nil && primaryHeaderLines != t.headerWindow.Height()) || - needHeaderLinesWindow && (t.headerLinesWindow == nil || t.headerLinesWindow != nil && t.headerLines != t.headerLinesWindow.Height()) || - !needHeaderLinesWindow && t.headerLinesWindow != nil { + if (needHeaderWindow && t.headerWindow == nil) || + (!needHeaderWindow && t.headerWindow != nil) || + (needHeaderWindow && t.headerWindow != nil && primaryHeaderLines != t.headerWindow.Height()) || + (needHeaderLinesWindow && t.headerLinesWindow == nil) || + (!needHeaderLinesWindow && t.headerLinesWindow != nil) || + (needHeaderLinesWindow && t.headerLinesWindow != nil && t.headerLines != t.headerLinesWindow.Height()) { t.printAll() return true } diff --git a/test/test_core.rb b/test/test_core.rb index 08d6c05b..cf4cd237 100644 --- a/test/test_core.rb +++ b/test/test_core.rb @@ -1930,7 +1930,10 @@ class TestCore < TestInteractive def test_change_header_on_header_window tmux.send_keys %(seq 100 | #{FZF} --list-border --input-border --bind 'start:change-header(foo),space:change-header(bar)'), :Enter - tmux.until { |lines| assert lines.any_include?('foo') } + tmux.until do |lines| + assert lines.any_include?('100/100') + assert lines.any_include?('foo') + end tmux.send_keys :Space tmux.until { |lines| assert lines.any_include?('bar') } end |
