summaryrefslogtreecommitdiffstats
path: root/src/tui
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2017-07-18 20:50:38 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2017-07-18 21:10:49 +0900
commit6b5886c034800c46d25a02c8b91c2797ec5fb6d6 (patch)
tree1dedf6690a05413e88e6acd17685c17a88a9f028 /src/tui
parent7727ad43afb57cb325439590a9a6bad94601a720 (diff)
Adjust --no-clear option for repetitive relaunching
Related: https://gist.github.com/junegunn/4963bab6ace453f7f529d2d0e01b1d85 Close #974
Diffstat (limited to 'src/tui')
-rw-r--r--src/tui/light.go20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/tui/light.go b/src/tui/light.go
index c19c8dca..5159aafe 100644
--- a/src/tui/light.go
+++ b/src/tui/light.go
@@ -182,10 +182,18 @@ func (r *LightRenderer) Init() {
if r.fullscreen {
r.smcup()
} else {
- r.csi("J")
+ // We assume that --no-clear is used for repetitive relaunching of fzf.
+ // So we do not clear the lower bottom of the screen.
+ if r.clearOnExit {
+ r.csi("J")
+ }
y, x := r.findOffset()
r.mouse = r.mouse && y >= 0
- if x > 0 {
+ // When --no-clear is used for repetitive relaunching, there is a small
+ // time frame between fzf processes where the user keystrokes are not
+ // captured by either of fzf process which can cause x offset to be
+ // increased and we're left with unwanted extra new line.
+ if x > 0 && r.clearOnExit {
r.upOneLine = true
r.makeSpace()
}
@@ -200,7 +208,7 @@ func (r *LightRenderer) Init() {
r.csi(fmt.Sprintf("%dA", r.MaxY()-1))
r.csi("G")
r.csi("K")
- // r.csi("s")
+ r.csi("s")
if !r.fullscreen && r.mouse {
r.yoffset, _ = r.findOffset()
}
@@ -586,10 +594,8 @@ func (r *LightRenderer) Close() {
}
r.csi("J")
}
- } else if r.fullscreen {
- r.csi("G")
- } else {
- r.move(r.height, 0)
+ } else if !r.fullscreen {
+ r.csi("u")
}
if r.mouse {
r.csi("?1000l")