Commit graph

30 commits

Author SHA1 Message Date
Daniel Eklöf
2b3f3711fc
TIOCSWINSZ: fix alignment and spelling 2019-06-24 19:39:31 +02:00
Daniel Eklöf
2fe7145aff
scrolling region: wip 2019-06-23 21:12:32 +02:00
Daniel Eklöf
b0a2c54fe8
vt: wip: implement scrolling region
This is largely untested, but existing scrolling code has been
converted to using a terminal-global scrolling region that is defined
as start-end of the scrollable region.

This is compared to the old code where the scrolling region where
defined in terms of marginals, counted in lines from top and from
bottom.
2019-06-23 18:02:49 +02:00
Daniel Eklöf
fbf0db621c
vt: implement reverse scrolling (terminfo 'ri')
This currently duplicates the code paths for DAMAGE_SCROLL; there are
many similarities between the two, but also major differences...
2019-06-23 17:16:52 +02:00
Daniel Eklöf
c0a9f9e6b2
resize: bug: we're not in alt screen mode at startup
When we start up, the cells pointer, *and* the alt screen pointer are
both NULL. Hence we incorrectly decided we were initially in alt
screen mode.
2019-06-23 17:14:46 +02:00
Daniel Eklöf
199e4aa044
vt: initial implementation of alt screen + 256 colors 2019-06-23 15:00:27 +02:00
Daniel Eklöf
35e5fa1f76
vt: implement DECCKM (cursor key sends either SS3 or CSI escapes) 2019-06-23 14:12:20 +02:00
Daniel Eklöf
949847a35a
vt: add all (?) missing states, actions and transitions 2019-06-23 13:28:55 +02:00
Daniel Eklöf
5698d69890
render: implement 'reverse' attribute 2019-06-22 21:42:44 +02:00
Daniel Eklöf
7ec746e826
render: implement 'conceal' attribute 2019-06-22 21:39:11 +02:00
Daniel Eklöf
4b6ea810fc
main: implement bold+italic fonts 2019-06-22 21:32:51 +02:00
Daniel Eklöf
3338b816a3
render: re-render cursor after ERASE (if cursor is in the erase range) 2019-06-21 15:31:35 +02:00
Daniel Eklöf
a50be28b9d
grid: implement DAMAGE_SCROLL 2019-06-21 14:29:15 +02:00
Daniel Eklöf
0ddd96de0d
render: break up grid_render() 2019-06-19 14:37:42 +02:00
Daniel Eklöf
304f15d696
Use a 'damage' list to communicate what needs to be updated
Instead of having each cell in the grid track it's own dirtiness, grid
operations now append "damage" to a list.

This list is consumed every time we render the grid.

This allows us to special case some operations, like erase (and in the
future, scroll).
2019-06-19 14:17:43 +02:00
Daniel Eklöf
71dde121e6
wip: initial input handling 2019-06-19 10:04:47 +02:00
Daniel Eklöf
50c43be0d9
grid: track both linear and row,col cursor 2019-06-17 21:15:20 +02:00
Daniel Eklöf
6d5f5b9f7a
wip: vt parsing 2019-06-17 18:57:12 +02:00
Daniel Eklöf
733223dd0c
TIOCSWINSZ: set ws_xpixel and ws_ypixel 2019-06-16 16:47:09 +02:00
Daniel Eklöf
c5b60253a7
vt: cell now tracks attributes (bold, italic, underline etc) 2019-06-16 16:44:42 +02:00
Daniel Eklöf
2a4c08b941
wip: vt parsing: initial csi/osc dispatching 2019-06-15 22:22:44 +02:00
Daniel Eklöf
0e6aa61d69
Track cell foreground and background colors 2019-06-13 21:55:32 +02:00
Daniel Eklöf
9f9949aeec
Initial handling of multi byte characters
Use mblen() to calculate the byte count for each character.
2019-06-13 21:23:52 +02:00
Daniel Eklöf
e062ff7b97
Set XDG toplevel title 2019-06-13 20:43:52 +02:00
Daniel Eklöf
46e3c9d4d4
Render cursor 2019-06-13 20:40:03 +02:00
Daniel Eklöf
71703e7dc6
Use frame callback to rate-limit surface updates 2019-06-13 17:14:14 +02:00
Daniel Eklöf
9ccc8433c3
initial grid implementation
This allows us to render *something*, even though it's inefficient,
stupid and far far away from the real thing.
2019-06-13 16:24:35 +02:00
Daniel Eklöf
acda4d2d31
Set up pseudo terminal and fork slave 2019-06-13 15:19:10 +02:00
Daniel Eklöf
4de6a8ad38
main: handle window resize 2019-06-12 20:17:48 +02:00
Daniel Eklöf
910c540ea9
initial commit: maps an XDG toplevel window 2019-06-12 20:08:54 +02:00