diff --git a/man/man1/fzf.1 b/man/man1/fzf.1 index f6a24fd..5035703 100644 --- a/man/man1/fzf.1 +++ b/man/man1/fzf.1 @@ -1280,7 +1280,7 @@ e.g. \fIclick-header\fR .RS -Triggered when a mouse click occurs within the header. Sets \fBFZF_CLICK_HEADER_LINE\fR and \fBFZF_CLICK_HEADER_COLUMN\fR environment variables. +Triggered when a mouse click occurs within the header. Sets \fBFZF_CLICK_HEADER_LINE\fR and \fBFZF_CLICK_HEADER_COLUMN\fR environment variables starting from 1. e.g. \fBprintf "head1\\nhead2" | fzf --header-lines=2 --bind 'click-header:transform-prompt:printf ${FZF_CLICK_HEADER_LINE}x${FZF_CLICK_HEADER_COLUMN}'\fR diff --git a/src/terminal.go b/src/terminal.go index a9eb658..918c424 100644 --- a/src/terminal.go +++ b/src/terminal.go @@ -4023,10 +4023,10 @@ func (t *Terminal) Loop() { } } return doActions(actionsFor(evt)) - } else { + } else if t.headerVisible { // Header - lineOffset := 0 numLines := t.visibleHeaderLines() + lineOffset := 0 if !t.headerFirst { // offset for info line if t.noSeparatorLine() { @@ -4034,20 +4034,15 @@ func (t *Terminal) Loop() { } else { lineOffset = 2 } - } else { - // adjust for too-small window - numItems := t.areaLines - numLines - if !t.noSeparatorLine() { - numItems -= 1 - } - if numItems < 0 { - numLines += numItems - } } - my = util.Constrain(my-lineOffset, -1, numLines) + my -= lineOffset mx -= 2 // offset gutter if my >= 0 && my < numLines && mx >= 0 { - t.clickHeaderLine = my + 1 + if t.layout == layoutReverse { + t.clickHeaderLine = my + 1 + } else { + t.clickHeaderLine = numLines - my + } t.clickHeaderColumn = mx + 1 return doActions(actionsFor(tui.ClickHeader)) }