diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2020-05-05 00:32:23 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-05 00:32:23 -0400 |
commit | fdd328d568f7f1a11474fd59a429ace2720afa33 (patch) | |
tree | ff8df84a5d8f7909b8f6308c4f4280b82fb22ac5 /src | |
parent | f605eeec65a3f4923e02f97fcef713365cd2e588 (diff) | |
parent | 7b764bb43d9c45e04a8dbb0146b3529991007949 (diff) | |
download | rneovim-fdd328d568f7f1a11474fd59a429ace2720afa33.tar.gz rneovim-fdd328d568f7f1a11474fd59a429ace2720afa33.tar.bz2 rneovim-fdd328d568f7f1a11474fd59a429ace2720afa33.zip |
Merge #12230 'fix :terminal flicker with scrolloff'
Diffstat (limited to 'src')
-rw-r--r-- | src/nvim/option.c | 5 | ||||
-rw-r--r-- | src/nvim/terminal.c | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/src/nvim/option.c b/src/nvim/option.c index d7675f48d7..84ace55d91 100644 --- a/src/nvim/option.c +++ b/src/nvim/option.c @@ -7453,6 +7453,10 @@ dict_T *get_winbuf_options(const int bufopt) /// global value when appropriate. long get_scrolloff_value(void) { + // Disallow scrolloff in terminal-mode. #11915 + if (State & TERM_FOCUS) { + return 0; + } return curwin->w_p_so < 0 ? p_so : curwin->w_p_so; } @@ -7462,4 +7466,3 @@ long get_sidescrolloff_value(void) { return curwin->w_p_siso < 0 ? p_siso : curwin->w_p_siso; } - diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c index 560a345333..a096b77ac6 100644 --- a/src/nvim/terminal.c +++ b/src/nvim/terminal.c @@ -343,12 +343,16 @@ void terminal_enter(void) RedrawingDisabled = false; // Disable these options in terminal-mode. They are nonsense because cursor is - // placed at end of buffer to "follow" output. + // placed at end of buffer to "follow" output. #11072 win_T *save_curwin = curwin; int save_w_p_cul = curwin->w_p_cul; int save_w_p_cuc = curwin->w_p_cuc; + long save_w_p_so = curwin->w_p_so; + long save_w_p_siso = curwin->w_p_siso; curwin->w_p_cul = false; curwin->w_p_cuc = false; + curwin->w_p_so = 0; + curwin->w_p_siso = 0; adjust_topline(s->term, buf, 0); // scroll to end // erase the unfocused cursor @@ -370,6 +374,8 @@ void terminal_enter(void) if (save_curwin == curwin) { // save_curwin may be invalid (window closed)! curwin->w_p_cul = save_w_p_cul; curwin->w_p_cuc = save_w_p_cuc; + curwin->w_p_so = save_w_p_so; + curwin->w_p_siso = save_w_p_siso; } // draw the unfocused cursor |