Maxime Coste
72271ce529
Handle skipped characters with erase line (EL) instead of insert blank (ICH)
...
insert blank seems to behave differently between terminals and would
be less efficient because it still has to shift all following characters
(that we will overwrite anyway).
Fixes #3437
2021-07-12 10:25:58 +10:00
Maxime Coste
b0dcb07540
Reduce amount of SGR escapes emitted by tracking the active face
2021-07-12 10:25:58 +10:00
Maxime Coste
63310370f8
Remove explicit whitespace padding in menu/info
...
Rely on the backend to clear content to eol
2021-07-12 10:25:58 +10:00
Maxime Coste
484cfae9d1
Use CSI @ instead of emitting lots of spaces
...
This greatly reduces the amount of data written for a redraw especially
on big terminals where most of the data is trailing blanks
2021-07-12 10:25:58 +10:00
Maxime Coste
8e1b79b1b7
Remove the concept of cursor in TerminalUI::Window
2021-07-12 10:25:58 +10:00
Maxime Coste
65fbabcb86
Fix another display corruption issue in the terminal output code
2021-07-12 10:25:58 +10:00
Maxime Coste
5c3b0b7503
Fix another terminal update issue in the latest code change
...
Fixes #3426
2021-07-12 10:25:58 +10:00
Maxime Coste
e6801867c7
Fix bug in terminal output line delete logic
2021-07-12 10:25:58 +10:00
Maxime Coste
5a31b9f351
Fix tab character that got introduced by mistake
2021-07-12 10:25:58 +10:00
Maxime Coste
68f0bcce7c
Reduce the number of added/removed lines when redrawing screen
...
This should reduce flickering.
2021-07-12 10:25:58 +10:00
Maxime Coste
0506de8443
Fix compute_pos behaviour not to overflow by one line
...
Thanks to eraserhd for debugging this and proposing an initial fix.
Fixes #3414
Close #3418
2021-07-12 10:25:58 +10:00
Maxime Coste
5466f63eeb
Use insert/remove lines escapes to reduce terminal traffic
...
Diff against known state and insert/erase relevant lines.
Erase everything first to avoid insertion invalidating lines that
get out of the terminal at bottom.
2021-07-12 10:25:58 +10:00
Maxime Coste
9e8f555a82
Only redraw updated lines
2021-07-12 10:25:58 +10:00
Maxime Coste
07750656a8
Blit all window together before outputing them to the tty
...
This should reduce flicker, by avoiding transient states where
info/menu windows are not displayed, and paves the way for proper
diffing of the screen.
2021-07-12 10:25:58 +10:00
Maxime Coste
03563d51aa
Fix crash on resize in TerminalUI
2021-07-12 10:25:58 +10:00
Maxime Coste
7e66846172
Rename NCursesUI to TerminalUI
2021-07-12 10:25:58 +10:00