Daniel Eklöf
8e161ed4e9
Merge branch 'no-window-decorations' into master
...
Closes #163
2020-10-10 22:23:08 +02:00
Daniel Eklöf
50ca1c2864
doc: foot.ini.t: csd.preferred: repair indentation of “default: _server_”
2020-10-10 13:07:31 +02:00
Daniel Eklöf
3940e07972
doc; foot.ini.5: csd.preferred: re-phrase
2020-10-10 13:07:31 +02:00
Daniel Eklöf
6ff97128fc
conf: csd.preferred can now be set to ‘none’
...
When csd.preferred == none, we will request CSDs from the compositor,
but internally render as if we are using SSDs. That is, we don’t
render any window decorations at all.
Note that some compositors may ignore our request to use CSDs, and
still render SSDs for us.
Closes #163
2020-10-10 13:07:29 +02:00
Daniel Eklöf
e54adbfa7c
Merge branch 'bind-shift+insert-to-primary-paste' into master
2020-10-10 13:05:55 +02:00
Daniel Eklöf
b308e09261
Merge branch 'configurable-word-delimiters' into master
...
Closes #156
2020-10-10 13:02:12 +02:00
Daniel Eklöf
9e0fcb1c27
shm: MAP_UNINITIALIZED is a linux only mmap flag
2020-10-10 11:29:47 +02:00
Daniel Eklöf
afafe12d5b
config: bind shift+insert to primary-paste by default
2020-10-10 10:27:42 +02:00
Daniel Eklöf
e26802258b
doc: benchmark: workstation numbers for 1.5.0
2020-10-09 21:17:38 +02:00
Daniel Eklöf
994262f7d4
doc: foot.ini: word-delimiters: whitespace chars are always delimiters
2020-10-09 19:50:56 +02:00
Daniel Eklöf
4fd9fb33fc
changelog: added: word-delimiters option to foot.ini
2020-10-09 19:47:03 +02:00
Daniel Eklöf
4d17c23224
main: configure locale *before* loading the config
...
Without this, config_load() can’t use wide-character functions
properly.
2020-10-09 19:45:26 +02:00
Daniel Eklöf
49f4b3da64
config: add ‘[default].word-delimiters’
...
This option lets the user configure which characters act as word
delimiters when selecting text.
This affects both “double clicking”, and ‘ctrl-w’ in scrollback search
mode.
Closes #156
2020-10-09 19:44:23 +02:00
Daniel Eklöf
8aba25a477
xmalloc: add xwcsdup()
2020-10-09 19:43:04 +02:00
Daniel Eklöf
c66ad118b7
changelog: add contributor
2020-10-09 19:19:40 +02:00
Daniel Eklöf
e48d259294
Merge branch 'wformat-nonliteral' into master
2020-10-09 18:56:57 +02:00
Daniel Eklöf
a4b7b1f28f
readme: minor rewrite of server/daemon section
2020-10-09 18:54:54 +02:00
Daniel Eklöf
5b0af8ed59
csi: only respond to Primary DA when Ps == 0
2020-10-09 18:53:00 +02:00
Daniel Eklöf
b611d56881
readme: clearer descriptions of secondary and tertiary DA responses
2020-10-09 18:52:28 +02:00
Daniel Eklöf
1f9ca7715f
term: remove unused bit in xtsave struct
2020-10-09 18:52:05 +02:00
Craig Barnes
afaeac0809
config: fix "-Wformat-nonliteral" warnings
2020-10-09 08:31:55 +01:00
Daniel Eklöf
96d7fcdce9
Merge branch 'sixel-at-scrollback-wraparound-gets-sheared' into master
...
Closes #151
2020-10-09 07:44:43 +02:00
Daniel Eklöf
606e901cea
changelog: we’ve fixed several sixel+reflow related bugs
2020-10-09 07:44:18 +02:00
Daniel Eklöf
468add5591
sixel: reflow: drop sixels that crosses the scrollback history’s end
...
This fixes various crashes that occurred after a reflow due to the
sixel image list invariants no longer being true.
2020-10-09 07:44:18 +02:00
Daniel Eklöf
2c952761f2
sixel: unhook: do overwrite *after* linefeeding
...
This ensures the overwrite is done when the scrollback history is in
the same state as when we then insert the new image.
2020-10-09 07:44:18 +02:00
Daniel Eklöf
93f5e743cc
sixel: overwrite: use pixman to calculate new the sixel boundaries
...
When punching a hole in a sixel (and thus splitting it up into up to
four new sixels), use pixman to calculate the new sixel coordinates
and sizes.
2020-10-09 07:44:18 +02:00
Daniel Eklöf
91c0aed26e
sixel: ovewrite-by-rectangle: in debug builds, cross-reference against pixman
...
Use pixman to calculate the intersection of the rectangle being
overwritten, and the sixel(s). Verify our code matches.
2020-10-09 07:44:18 +02:00
Daniel Eklöf
5ebab9dea9
sixel: verify scrollback consistency: new verify function
...
Verifies sixels have been scrolled out correctly
2020-10-09 07:44:18 +02:00
Daniel Eklöf
11760e9071
sixel: add comments to verify_*() functions
2020-10-09 07:44:17 +02:00
Daniel Eklöf
5607e5d658
sixel: verify-*: don’t return anything; rely on asserts only
2020-10-09 07:44:17 +02:00
Daniel Eklöf
0a5a6cb7fa
sixel: scroll up/down: early return when list is empty
...
Branch tagged as ‘likely’ for performance reason
2020-10-09 07:44:17 +02:00
Daniel Eklöf
984083bf19
sixel: cell-size-changed: don’t verify sixels here
...
The state after this function is an intermediate state and isn’t
necessarily valid.
This sixels needs to be ‘reflowed’ to ensure a valid state. This is
something that should be done by the caller after the text grid has
been reflowed and the sixel coordinates have been re-mapped to the new
grid.
TODO: can/should we update the sixel cols/rows in sixel_reflow()
instead?
2020-10-09 07:44:17 +02:00
Daniel Eklöf
cf620cf3d0
sixel: unhook: look total number of sixels
...
This helps debug sixel overwrites, as it makes it more visible when
there are sixels that _should_ have been removed.
2020-10-09 07:44:17 +02:00
Daniel Eklöf
b66e235e84
sixel: scroll-up: don’t break out early of loop
...
This function loops the list of sixels, and discards those that would
be scrolled out if the grid offset is moved forward by the specified
number of rows.
The criteria is when the rebased row value is less than the number of
rows to scroll.
A rebased row number is a zero-based number starting at the beginning
of the scrollback. Thus, when scrolling 5 rows, rows with a rebased
row number between 0-4 will be scrolled out.
For performance reasons, we used to break out of the loop as soon as a
row number *larger* than the scroll count.
This however does not work. The sixels are sorted by their *end*
row. While this works in most cases (think images outputted in the
shell in the normal screen), it doesn’t always.
In the alt screen, where applications can print images just about
anywhere, it is possible to have *any* start row number anywhere in
the sixel list. Just as long as their *end* row numbers are sorted.
For example, a huuuge sixel that covers the entire scrollback. This
sixel will naturally be first in the list (and thus sixel_scroll_up()
will visit it *last*, since it iterates the list in reverse), but
should still be destroyed when scrolling.
2020-10-09 07:44:17 +02:00
Daniel Eklöf
e870a0068f
sixel: verify-list-order: add an ‘index’ variable
...
This will make it easier when debugging assertions in this function.
2020-10-09 07:44:17 +02:00
Daniel Eklöf
675f3e56c8
sixel: overwrite-by-rectangle: assert sixels don’t cross scrollback wrap-around
2020-10-09 07:44:17 +02:00
Daniel Eklöf
8168fc19df
sixel: scroll: call sixel_erase() instead of sixel_destroy()
...
This ensures the screen is updated correctly. Without this, the sixel
image would remain on screen until force-refreshed by some other means.
2020-10-09 07:44:17 +02:00
Daniel Eklöf
42cc84eab7
sixel: TOOD -> TODO (fixes codespell build error)
2020-10-09 07:44:17 +02:00
Daniel Eklöf
8129ff69c9
sixel: verify-no-overlap: free pixman regions
2020-10-09 07:44:16 +02:00
Daniel Eklöf
2f5df30ef5
sixel: verify-no-overlap: initialize ‘intersection’ pixman region
2020-10-09 07:44:16 +02:00
Daniel Eklöf
f2da822e9a
render: resize: call sixel_reflow() after reflowing grids
2020-10-09 07:44:16 +02:00
Daniel Eklöf
47298776dc
sixel: unhook: only call render_refresh() once
2020-10-09 07:44:16 +02:00
Daniel Eklöf
dbfc636ade
sixel: implement reflow
...
Move sixel reflow from grid_reflow() to sixel_reflow(). This lets us
use internal sixel functions to update the sixels.
Note that grid_reflow() still needs to remap the sixelss coordinates.
2020-10-09 07:44:16 +02:00
Daniel Eklöf
892730e5b9
term: update sixel rows/cols *after* cell dimension change, *before* resize
...
This fixes an issue where we resized+reflowed with bad rows/cols
values in the sixels.
2020-10-09 07:44:16 +02:00
Daniel Eklöf
9102194846
sixel: verify-sixels: check for bad list order last
2020-10-09 07:44:16 +02:00
Daniel Eklöf
14b4231c09
sixel: verify-no-wraparound-crossover: fix calculation of ‘end’ row
2020-10-09 07:44:16 +02:00
Daniel Eklöf
52a7155897
sixel: add sixel_cell_size_changed()
...
This function should be called *after* the cell dimensions have
changed, but *before* resizing/reflowing the grids.
2020-10-09 07:44:16 +02:00
Daniel Eklöf
cf48d1dc4c
sixel: debug: more fine-grained verification of sixel image list
...
* Verify no sixel crosses the scrollback wrap-around
* Verify no sixels overlap
2020-10-09 07:44:15 +02:00
Daniel Eklöf
323119a645
grid: reflow: re-insert sixels *after* new grid offset has been set
...
Also make sure to destroy sixels that are too big to fit in the scrollback.
Fixes issues with the sixel list not being sorted correctly.
2020-10-09 07:44:15 +02:00
Daniel Eklöf
5a6b96817d
sixel: overwrite: calculate split-up image pieces’ rows/cols from their width/height
2020-10-09 07:44:15 +02:00