New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tui: disable BCE almost always #7624

Merged
merged 3 commits into from Nov 25, 2017

Conversation

Projects
None yet
4 participants
@justinmk
Member

justinmk commented Nov 23, 2017

Update: ef195e8 always disables BCE except for "real xterm".

Summary:

  • Nvim 0.2.0 did not implement BCE.
  • Nvim 0.2.1 enabled BCE aggressively.
  • Nvim 0.2.3+ (after this PR) disables BCE (like 0.2.0) in all cases except when the $XTERM_VERSION env var is defined.

ref #4210 #4421 #7035 #7337 #7381 #7425 #7618

tui: Disable BCE by default. #7624
133ae5e implemented BCE (background color erase).  That's fine if
the system terminfo claims to support it; but our built-in fallback
should not assume it.

Per kovidgoyal/kitty#160 (comment)
terminal support for BCE seems to be (1) optional and (2) inconsistent.
So the built-in terminfos should disable it by default.

ref #4210 #4421 #7035 #7337 #7381 #7425 #7618

@justinmk justinmk force-pushed the justinmk:tui branch from 1bd7840 to ef195e8 Nov 23, 2017

justinmk added a commit to justinmk/neovim that referenced this pull request Nov 23, 2017

tui: Disable BCE almost always. neovim#7624
133ae5e implemented BCE (background color erase).  It has caused
a lot of trouble and gained almost nothing.

Per kovidgoyal/kitty#160 (comment)
terminal support for BCE seems to be (1) optional and (2) inconsistent.

ref neovim#4210 neovim#4421 neovim#7035 neovim#7337 neovim#7381 neovim#7425 neovim#7618
@mqudsi

This comment has been minimized.

Contributor

mqudsi commented Nov 24, 2017

Oh my, that comment on Kitty #160 is quite the interesting read. This looks like a good solution; I'm going to apply the patch and see how it works out on Windows.

My workaround in the meantime has been autocmd colorscheme * :highlight Normal ctermbg=0 (must be set prior to colo in init.vim) which forces the background color of the scheme to the same background color as the terminal.

tui: Disable BCE almost always. #7624
133ae5e implemented BCE (background color erase). But we can't
trust terminfo, so it is safer disable BCE if we are not certain.

Per kovidgoyal/kitty#160 (comment)
terminal support for BCE seems to be (1) optional and (2) inconsistent.

ref #4210 #4421 #7035 #7337 #7381 #7425 #7618

@justinmk justinmk force-pushed the justinmk:tui branch from ef195e8 to b838ad5 Nov 24, 2017

tui: update cleared area only if non-default bg
This check was removed in 133ae5e without explanation.

@justinmk justinmk changed the title from tui: Disable BCE (background color erase) by default. to tui: disable BCE; update cleared area only if non-default bg Nov 24, 2017

@justinmk justinmk merged commit 303e1df into neovim:master Nov 25, 2017

3 checks passed

QuickBuild Build pr-7624 finished with status SUCCESSFUL
Details
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@justinmk justinmk deleted the justinmk:tui branch Nov 25, 2017

@justinmk

This comment has been minimized.

Member

justinmk commented Nov 27, 2017

@vxid re kovidgoyal/kitty#160 : could you try latest Nvim master, (which includes #7640 ) and say what :echo &term reports?

@vxid

This comment has been minimized.

vxid commented Nov 27, 2017

@justinmk Thanks for the followup. I had disabled relativenumber for the past week given the bug but I just gave it another try and it seems to work fine now (no lines disappearing).

Nvim from master echoes kitty-xterm while the arch binary echoes nvim.

@blueyed

This comment has been minimized.

Contributor

blueyed commented on 0b93bab Nov 29, 2017

@justinmk
This causes display issues for me with rxvt-unicode now:
https://asciinema.org/a/D5ma410HQBkPZeXf5xPYye31q

Please ignore the off-colors (I am using base16 solarized).

In the video I am splitting the file (the upper one gets "dimmed"), and then search forwards/backwards: when hitting the end (no wrapping) it causes display issues (mostly) below (when searching down) or above (when searching up): the bg is leaking from a highlighting group that I am using with the active statusline (StatColorHi2 (for my reference)).

It does not happen when searching slowly (i.e. pressing "n" one after another), but only when holding it down.

(For my reference, this is with tox/session.py, searching for "logdir")

Should I file a new issue?

/cc @jdebp

This comment has been minimized.

Contributor

blueyed replied Nov 29, 2017

Hopefully better visible here: https://asciinema.org/a/rA1CRNSfx4bLmqpXR8a9HRwO5

This comment has been minimized.

Contributor

blueyed replied Nov 29, 2017

TERM=rxvt-unicode-256color

This comment has been minimized.

Member

justinmk replied Nov 29, 2017

@blueyed Thanks for reporting. Looking at this with fresh eyes, I realize it's actually counterproductive to the other BCE-related changes that this was bundled with. Reverted.

justinmk added a commit that referenced this pull request Nov 29, 2017

Revert "tui: update cleared area only if non-default bg"
Reverts 0b93bab. This change was
counter-productive to the other changes which intended to reduce the
role of BCE.

ref #7624

@justinmk justinmk changed the title from tui: disable BCE; update cleared area only if non-default bg to tui: disable BCE almost always Nov 29, 2017

@blueyed

This comment has been minimized.

Contributor

blueyed commented Nov 30, 2017

@justinmk
Thank you!

@mqudsi

This comment has been minimized.

Contributor

mqudsi commented Nov 30, 2017

@justinmk these latest changes also fix the scrolling issues I've been having under conhost/W10 as well. I'll test further and comment on the relevant issue, though.

mqudsi added a commit to mqudsi/nvim-config that referenced this pull request Dec 6, 2017

justinmk added a commit that referenced this pull request Jun 11, 2018

NVIM v0.3.0
FEATURES:
3cc7ebf #7234 built-in VimL expression parser
6a7c904 #4419 implement <Cmd> key to invoke command in any mode
b836328 #7679 'startup: treat stdin as text instead of commands'
58b210e :digraphs : highlight with hl-SpecialKey #2690
7a13611 #8276 'startup: Let `-s -` read from stdin'
1e71978 events: VimSuspend, VimResume #8280
1e7d5e8 #6272 'stdpath()'
f96d99a #8247 server: introduce --listen
e8c39f7 #8226 insert-mode: interpret unmapped META as ESC
98e7112 msg: do not scroll entire screen (#8088)
f72630b #8055 let negative 'writedelay' show all redraws
5d2dd2e win: has("wsl") on Windows Subsystem for Linux #7330
a4f6cec cmdline: CmdlineEnter and CmdlineLeave autocommands (#7422)
207b7ca #6844 channels: support buffered output and bytes sockets/stdio

API:
f85cbea #7917 API: buffer updates
418abfc #6743 API: list information about all channels/jobs.
36b2e3f #8375 API: nvim_get_commands
273d2cd #8329 API: Make nvim_set_option() update `:verbose set …`
8d40b36 #8371 API: more reliable/descriptive VimL errors
ebb1acb #8353 API: nvim_call_dict_function
9f994bb #8004 API: nvim_list_uis
3405704 #7520 API/UI: forward option updates to UIs
911b1e4 #7821 API: improve nvim_command_output

WINDOWS OS:
9cefd83 #8084, #8516 build/win: support MSVC
ee4e1fd win: Fix reading content from stdin (#8267)

TUI:
ffb8904 #8309 TUI: add support for mouse release events in urxvt
8d5a46e #8081 TUI: implement "standout" attribute
6071637 TUI: support TERM=konsole-256color
67848c0 #7653 TUI: report TUI info with -V3 ('verbose' >= 3)
3d0ee17 TUI/rxvt: enable focus-reporting
d109f56 #7640 TUI: 'term' option: reflect effective terminal behavior

FIXES:
ed6a113 #8273 'job-control: avoid kill-timer race'
4e02f1a #8107 'jobs: separate process-group'
451c48a terminal: flush vterm output buffer on pty output #8486
5d6732f :checkhealth fixes #8335
53f11dc #8218 'Fix errors reported by PVS'
d05712f inccommand: pause :terminal redraws (#8307)
51af911 inccommand: do not execute trailing commands #8256
84359a4 terminal: resize to the max dimensions (#8249)
d49c1dd #8228 Make vim_fgets() return the same values as in Vim
60e96a4 screen: winhl=Normal:Background should not override syntax (#8093)
0c59ac1 #5908 'shada: Also save numbered marks'
ba87a2c cscope: ignore EINTR while reading the prompt (#8079)
b1412dc #7971 ':terminal Enter/Leave should not increment jumplist'
3a5721e TUI: libtermkey: force CSI driver for mouse input #7948
6ff13d7 #7720 TUI: faster startup
1c6e956 #7862 TUI: fix resize-related segfaults
a58c909 #7676 TUI: always hide cursor when flushing, never flush buffers during unibilium output
303e1df #7624 TUI: disable BCE almost always
249bdb0 #7761 mark: Make sure that jumplist item will not have zero lnum
6f41ce0 #7704 macOS: Set $LANG based on the system locale
a043899 #7633 'Retry fgets on EINTR'

CHANGES:
ad60927 #8304 default to 'nofsync'
f3f1970 #8035 defaults: 'fillchars'
a6052c7 #7984 defaults: sidescroll=1
b69fa86 #7888 defaults: enable cscopeverbose
7c4bb23 defaults: do :filetype stuff unless explicitly "off"
2aa308c #5658 'Apply :lmap in macros'
8ce6393 terminal: Leave 'relativenumber' alone (#8360)
e46534b #4486 refactor: Remove maxmem, maxmemtot options
131aad9 win: defaults: 'shellcmdflag', 'shellxquote' #7343
c57d315 #8031 jobwait(): return -2 on interrupt also with timeout
6452831 clipboard: macOS: fallback to tmux if pbcopy is broken #7940
300d365 #7919 Make 'langnoremap' apply directly after a map
ada1956 #7880 'lua/executor: Remove lightuserdata'

INTERNAL:
de0a954 #7806 internal statistics for list impl
dee78a4 #7708 rewrite internal list impl

@justinmk justinmk referenced this pull request Aug 3, 2018

Merged

[RFC] tui: fix resize and use BCE more often #8806

2 of 3 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment