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