tui: disable BCE almost always #7624
Conversation
5367367
to
fff6337
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
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
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 |
This check was removed in 133ae5e without explanation.
@vxid re kovidgoyal/kitty#160 : could you try latest Nvim master, (which includes #7640 ) and say what |
@justinmk Thanks for the followup. I had disabled Nvim from master echoes |
This comment has been minimized.
This comment has been minimized.
@justinmk 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 ( 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 Should I file a new issue? /cc @jdebp |
This comment has been minimized.
This comment has been minimized.
Hopefully better visible here: https://asciinema.org/a/rA1CRNSfx4bLmqpXR8a9HRwO5 |
This comment has been minimized.
This comment has been minimized.
TERM=rxvt-unicode-256color |
This comment has been minimized.
This comment has been minimized.
@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 |
@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. |
Works around neovim/neovim#7425 but may no longer be necessary due to neovim/neovim#7624
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
Remove this vestigial hack from neovim#7624. Since 5a0d028 we blacklist BCE more surgically. And patch_terminfo_bugs() is the more appropriate place for that. ref 5749eca ref neovim#4210 neovim#4421 neovim#7035 neovim#7337 neovim#7381 neovim#7425 neovim#7618
Update: ef195e8 always disables BCE except for "real xterm".
Summary:
$XTERM_VERSION
env var is defined.ref #4210 #4421 #7035 #7337 #7381 #7425 #7618