Daniel Eklöf
7b18f8394e
input: pointer-leave: reset 'active-surface' in terminal
2020-02-24 22:41:46 +01:00
Daniel Eklöf
d303084a81
input: pointer-enter: differentiate between the surfaces
2020-02-24 22:40:24 +01:00
Daniel Eklöf
0b265cc9a5
render: csd: sort geometry entries
2020-02-24 22:40:02 +01:00
Daniel Eklöf
b725ac4c73
wayland: terminal_from_surface(): use term_surface_kind()
2020-02-24 22:39:37 +01:00
Daniel Eklöf
7f270a9f01
term: add term_surface_kind(), and track currently active surface
...
This is needed to handle pointer motion and button events correctly,
since mouse actions in e.g. CSD surfaces are very different from mouse
actions in the main window.
2020-02-24 22:38:35 +01:00
Daniel Eklöf
2798807853
render: csd: render all borders and the title bar
...
* Still no content in the title bar
* Colors are temporary
* No resize/drag yet
2020-02-24 22:06:20 +01:00
Daniel Eklöf
01a11457a5
Merge branch 'master' into csd
2020-02-24 18:47:08 +01:00
Daniel Eklöf
0c247de4ae
sixel: CSI setters also write a reply to the client
2020-02-24 18:42:52 +01:00
Daniel Eklöf
77fcb43ea5
term: scroll: call sixel_delete_*() instead of manually erasing sixel images
2020-02-24 18:42:52 +01:00
Daniel Eklöf
4c6f2ea340
term: term_erase(): call sixel_delete_*()
...
This ensures sixel images are removed, regardless of _how_ the screen
was erased.
2020-02-24 18:42:46 +01:00
Daniel Eklöf
afa9ac0cfc
sixel: ensure 'start' row is not outside the grid row range
2020-02-24 18:42:46 +01:00
Daniel Eklöf
95f7c5586c
sixel: add sixel_delete_at_row and sixel_delete_in_range
...
These are utility functions to erase sixel images that are at the
specified row, or in a row range.
2020-02-24 18:42:32 +01:00
Daniel Eklöf
d804bc8579
term: resize: pre-calculate right/bottom margins
2020-02-24 18:38:11 +01:00
Daniel Eklöf
8368e8184f
csd: wip: something to get started...
2020-02-23 14:17:48 +01:00
Daniel Eklöf
7fd380f253
csi: delete all sixels on the 'alt' grid when switching back to 'normal'
2020-02-23 00:41:55 +01:00
Daniel Eklöf
85684bc0c7
render: sixel: don't render sixels on the 'other' grid
2020-02-23 00:41:28 +01:00
Daniel Eklöf
6d69311630
term: scroll: don't delete sixel images on the 'other' grid
2020-02-23 00:41:10 +01:00
Daniel Eklöf
2c7d98f2ee
sixel: destroy_at_cursor(): skip images on 'other' grid
2020-02-23 00:40:53 +01:00
Daniel Eklöf
a2b4bcbd4f
sixel: track which grid image was created on
2020-02-23 00:40:30 +01:00
Daniel Eklöf
86d640ef71
sixel: rename: purge_at_cursor() -> delete_at_cursor()
2020-02-22 23:06:11 +01:00
Daniel Eklöf
3a24777e45
Merge branch 'sixel-graphics'
2020-02-22 22:06:14 +01:00
Daniel Eklöf
5c7fc3a0c7
README: add screenshot of sixel graphics
2020-02-22 22:04:28 +01:00
Daniel Eklöf
270b7cc6f4
sixel: purge images in unhook, rather than in init
...
This fixes an issue where the cursor was seen blinking in animated
GIFs.
2020-02-22 21:55:10 +01:00
Daniel Eklöf
80361ca04e
sixel: purge images at current cursor row
...
When printing a character, or starting a new sixel image, purge all
images that cover the cursor's current row.
2020-02-22 21:35:45 +01:00
Daniel Eklöf
462229af70
sixel: oops
2020-02-22 21:24:21 +01:00
Daniel Eklöf
6e8c4149d2
README: add sixel support to feature list
2020-02-22 21:21:14 +01:00
Daniel Eklöf
05ff2a8a15
sixel: don't ever shrink the image
2020-02-22 21:20:22 +01:00
Daniel Eklöf
f96eb5ff07
sixel: add HLS color format support
2020-02-22 21:18:55 +01:00
Daniel Eklöf
7985cefd65
sixel: add comments to max_width()/max_height()
2020-02-22 21:04:24 +01:00
Daniel Eklöf
25b09b909c
sixel: application configurable image max width/height
2020-02-22 21:03:24 +01:00
Daniel Eklöf
8e37a18083
sixel: application configurable palette size (color count)
...
This implements the CSI escapes for retrieving and (re)setting the
palette size.
2020-02-22 14:02:00 +01:00
Daniel Eklöf
5e65db3b07
sixel: use terminal's background color, not palette[0]
2020-02-22 14:01:20 +01:00
Daniel Eklöf
a9971f4c32
csi: DA: we now implement sixel
2020-02-22 12:16:19 +01:00
Daniel Eklöf
23d39e6f90
sixel: finalize: use width/height from image, not row/col pos
2020-02-22 11:52:48 +01:00
Daniel Eklöf
a8dc61d0ff
sixel: resize: initialize new rows/columns with the background color
2020-02-22 11:52:22 +01:00
Daniel Eklöf
a418521ced
sixel: mention why we add one
2020-02-22 11:37:25 +01:00
Daniel Eklöf
7625264851
sixel: clean up state machine
...
Use proper state names, and implement the state machine using switch
statements.
2020-02-22 11:30:30 +01:00
Daniel Eklöf
f193695960
sixel: use a struct coord for current sixel position
2020-02-22 10:54:52 +01:00
Daniel Eklöf
1b728dcac8
sixel: rename state SIXEL_SIXEL -> SIXEL_GROUND
2020-02-22 10:50:05 +01:00
Daniel Eklöf
87193ff339
sixel: raster: only resize image buffer if necessary
2020-02-22 10:49:00 +01:00
Daniel Eklöf
ad5b2030f0
term: free sixel images on reset
2020-02-22 10:47:16 +01:00
Daniel Eklöf
b03ffa3720
sixel: resize image buffer after receiving a "raster" command
2020-02-22 10:46:54 +01:00
Daniel Eklöf
00c6d4dde1
sixel: resize image buffer dynamically
2020-02-22 10:46:35 +01:00
Daniel Eklöf
bb82b9fabc
sixel: add sixel_destroy()
2020-02-22 00:23:19 +01:00
Daniel Eklöf
6f84b79810
sixel: always bump row on unhook
2020-02-22 00:19:38 +01:00
Daniel Eklöf
da76b8cbf8
sixel: ugly hack to remove over-written sixel images
2020-02-22 00:10:42 +01:00
Daniel Eklöf
63140a68f5
sixel: calculate image height in (cell) rows
2020-02-22 00:05:25 +01:00
Daniel Eklöf
564e8909f4
render: break out sixel rendering code
2020-02-21 23:48:45 +01:00
Daniel Eklöf
f0fc82f098
sixel: wip: maintain a list of finished, and "active" sixel images
...
In unhook, add the generated image to a list of finished sixel images,
along with positioning and size information.
When rendering, loop this list of images, and render the images (or
parts of) that are visible.
When scrolling, check if any part of the images cover the re-cycled
lines, and if so, remove the *entire* image from the list.
This means we have the following limitations:
* The renderer always renders the whole (visible area of) the
image(s). There are times when this isn't necessary - for example,
when the image is scrolled inside the visible area.
* It would be nice if we could crop the image when parts of it is
scrolled out.
2020-02-21 23:40:35 +01:00
Daniel Eklöf
f81bdfeed5
Merge branch 'master' into sixel-graphics
2020-02-21 23:38:57 +01:00