`Ctrl+L` to Repaint Screen
- Dominant language
- Rust
- Stars
- 22.5k
- Forks
- 773
- PR merge metrics
- No merged PRs in 30d
Description
### The Problem
A TUI can get messed up for various reasons, and `gitui` is no exception.
A simple trigger that's reproducible with `gitui` is running it in the internal shell in Midnight Commander - a setup that would be very convenient, if it weren't so badly impeded by `gitui` (as of v0.27.0) losing its shape as soon as `mc`'s panels are toggled (`Ctrl+O`).
### Suggested Solution
Like most other TUI tools, `gitui` should offer a dedicated command, readily bound to a keyboard shortcut (preferably `Ctrl+L`), that **repaints the entire screen content** that's meant to be displayed.
### Additional Context
- Screenshot:
- Proper display can be restored to some extend by cycling through tabs - the more content, the better, because `gitui` redraws the changed areas of the terminal. E. g. the `Log` tab with many verbose messages often suffices to restore the left 60% or so. However, this workaround is both cumbersome and incomplete, disturbing fragments remain. At the end, exiting and restarting `gitui` is the only real remedy I know.
- Examples of TUI applications without this bug include `mc`'s own TUI (with panels on), as well as `less`, `mutt`, `vim`, `htop`, `aptitude` - you name it. When run in `mc`'s internal terminal and panels are toggled, they either don't get deranged, in the first place, or a quick `Ctrl+L` will completely resolve the mess.
- The same holds if you test `gitui` vs. other TUI applications outside `mc`, e. g. by forcing garbage onto them, as in `echo "garbage" > /dev/pts/8`. All of the above examples (and many more) are instantaneously set back in order by a simple `Ctrl+L`.
- Possibly related (even if remotely): #1077
Contributor guide
Assessment
This issue has not been assessed yet.