A fast, lightweight and minimalistic Wayland terminal emulator
Find a file
Daniel Eklöf e6c27645fa
term: optimize damage list after scroll
This optimizes the normal scrolling case; updates are done at the
bottom of the screen and then scrolled up.

In this case, the damage list will be a more or less sorted list of
updates, oldest first.

If we're scrolling a lot, the oldest updates will eventually scroll
off screen. In this case, there's no need to keep them in the damage
list.

So, when scrolling, loop the damage list and adjust/remove updates
that have scrolled off screen (either partially, or completely).

Stop looping as soon as we see an update that has *not* scrolled off
screen.

Note that this means there may be update items in the damage list
that *has* scrolled off screen. This is especially true for random
screen writes (i.e. typical to some synthetic benchmarks).
2019-07-03 09:23:42 +02:00
.gitignore initial commit: maps an XDG toplevel window 2019-06-12 20:08:54 +02:00
csi.c csi: up to application to restore scroll region on alt switch? 2019-07-03 08:37:16 +02:00
csi.h wip: vt parsing: initial csi/osc dispatching 2019-06-15 22:22:44 +02:00
font.c initial grid implementation 2019-06-13 16:24:35 +02:00
font.h initial grid implementation 2019-06-13 16:24:35 +02:00
grid.c grid: implement a memmove-sort-of function 2019-07-01 19:18:52 +02:00
grid.h grid: implement a memmove-sort-of function 2019-07-01 19:18:52 +02:00
input.c vt: implement DECCKM (cursor key sends either SS3 or CSI escapes) 2019-06-23 14:12:20 +02:00
input.h wip: initial input handling 2019-06-19 10:04:47 +02:00
LICENSE add license 2019-06-12 20:10:12 +02:00
log.c log: don't syslog 2019-06-29 20:48:02 +02:00
log.h initial commit: maps an XDG toplevel window 2019-06-12 20:08:54 +02:00
main.c main: make sure cursor is inside the new row/col limits on resize 2019-07-02 22:32:25 +02:00
meson.build Rename grid_* functions to term_* 2019-06-29 21:03:28 +02:00
osc.c wip: vt parsing: initial csi/osc dispatching 2019-06-15 22:22:44 +02:00
osc.h wip: vt parsing: initial csi/osc dispatching 2019-06-15 22:22:44 +02:00
shm.c shm: width/height must match 2019-06-12 20:17:35 +02:00
shm.h initial commit: maps an XDG toplevel window 2019-06-12 20:08:54 +02:00
slave.c slave: remove initial debug code 2019-06-29 20:49:35 +02:00
slave.h Set up pseudo terminal and fork slave 2019-06-13 15:19:10 +02:00
terminal.c term: optimize damage list after scroll 2019-07-03 09:23:42 +02:00
terminal.h term: "cache" pointer to current line 2019-07-02 22:18:25 +02:00
tllist.h initial commit: maps an XDG toplevel window 2019-06-12 20:08:54 +02:00
vt.c term: "cache" pointer to current line 2019-07-02 22:18:25 +02:00
vt.h wip: vt parsing: initial csi/osc dispatching 2019-06-15 22:22:44 +02:00