From bf184449bc8f5d6a2e4df8a86fd4d333c85cca53 Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Mon, 6 May 2024 09:27:58 +0900 Subject: [PATCH] Count $FZF_CLICK_HEADER_LINE from top to bottom Regardless of `--layout`. https://github.com/junegunn/fzf/pull/3768#issuecomment-2094806558 --- man/man1/fzf.1 | 2 +- src/terminal.go | 21 ++++++++------------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/man/man1/fzf.1 b/man/man1/fzf.1 index f6a24fd9..50357030 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 a9eb6582..918c4244 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)) }