Skip to content

Commit 29cf28d

Browse files
committed
Suppress 'change' event during bracketed paste mode
Close #4316
1 parent 7e4dbb5 commit 29cf28d

File tree

7 files changed

+189
-161
lines changed

7 files changed

+189
-161
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ CHANGELOG
88
# Display "Type to search" when the input is empty
99
fzf --ghost "Type to search"
1010
```
11+
- Bug fixes and improvements
1112

1213
0.60.3
1314
------

src/actiontype_string.go

+132-130
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/terminal.go

+14-1
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ type Terminal struct {
279279
yanked []rune
280280
input []rune
281281
inputOverride *[]rune
282+
pasting *[]rune
282283
multi int
283284
multiLine bool
284285
sort bool
@@ -459,6 +460,8 @@ const (
459460
actStart
460461
actClick
461462
actInvalid
463+
actBracketedPasteBegin
464+
actBracketedPasteEnd
462465
actChar
463466
actMouse
464467
actBeginningOfLine
@@ -668,6 +671,8 @@ func defaultKeymap() map[tui.Event][]*action {
668671

669672
add(tui.Fatal, actFatal)
670673
add(tui.Invalid, actInvalid)
674+
add(tui.BracketedPasteBegin, actBracketedPasteBegin)
675+
add(tui.BracketedPasteEnd, actBracketedPasteEnd)
671676
add(tui.CtrlA, actBeginningOfLine)
672677
add(tui.CtrlB, actBackwardChar)
673678
add(tui.CtrlC, actAbort)
@@ -4977,6 +4982,14 @@ func (t *Terminal) Loop() error {
49774982
case actInvalid:
49784983
t.mutex.Unlock()
49794984
return false
4985+
case actBracketedPasteBegin:
4986+
current := []rune(t.input)
4987+
t.pasting = &current
4988+
case actBracketedPasteEnd:
4989+
if t.pasting != nil {
4990+
queryChanged = string(t.input) != string(*t.pasting)
4991+
t.pasting = nil
4992+
}
49804993
case actTogglePreview, actShowPreview, actHidePreview:
49814994
var act bool
49824995
switch a.t {
@@ -6036,7 +6049,7 @@ func (t *Terminal) Loop() error {
60366049
} else {
60376050
t.truncateQuery()
60386051
}
6039-
queryChanged = string(previousInput) != string(t.input)
6052+
queryChanged = queryChanged || t.pasting == nil && string(previousInput) != string(t.input)
60406053
if queryChanged {
60416054
t.inputOverride = nil
60426055
}

src/tui/eventtype_string.go

+28-26
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)