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
Daniel Eklöf
a53a81cebf
sixel: overwrite: remove asserts
...
Sixels may extend outside the visible screen area
2020-10-09 07:44:15 +02:00
Daniel Eklöf
6cf86d67d9
term: re-calculate sixel images’ rows/cols values when cell size changes
2020-10-09 07:44:15 +02:00
Daniel Eklöf
bc75f4744c
sixel: fix sheared image when image crosses scrollback wrap-around
...
When a sixel image crosses the scrollback wrap-around, it is split up
into (at least) two pieces.
We use cursor->point.col for all pieces’ x-coordinate. This caused the
final image to appear sheared, since we do a carriage-return (after a
number of linefeeds) after each piece - this causes the cursor’s
position to be reset to the left margin.
The solution is simple; remember the cursor’s initial x-coordinate,
and use that to position all image pieces.
Closes #151 .
2020-10-09 07:44:15 +02:00
Daniel Eklöf
96405c2ca9
sixel: overwrite-by-rectangle expects ‘width’ to not exceed screen
...
This fixes a crash when the emitted sixel extends beyond the right
margin. The crash only happens when there are other sixel images
already emitted.
Fixes part of #151
2020-10-09 07:44:13 +02:00
Daniel Eklöf
7e026ba119
sixel: fold long line
2020-10-09 07:43:57 +02:00
Daniel Eklöf
b10d93b0ef
Merge branch 'bell-triggers-faked-urgency' into master
...
Closes #157
2020-10-09 07:41:39 +02:00
Daniel Eklöf
f47d27968f
doc: foot.ini: bell/urgency: add note about this getting replaced in the future
...
The ‘set-urgency’ action is an interim workaround for lack of support
of an urgency hint in Wayland compositors. If/when such a feature gets
implemented in Wayland, I intend to use that instead of the current
implementation in foot.
2020-10-09 07:39:53 +02:00
Daniel Eklöf
7c6686221f
bell: optionally render margins in red when receiving BEL
...
Add anew config option, ‘bell=none|set-urgency’. When set to
‘set-urgency’, the margins will be painted in red (if the window did
not have keyboard focus).
This is intended as a cheap replacement for the ‘urgency’ hint, that
doesn’t (yet) exist on Wayland.
Closes #157
2020-10-08 19:55:32 +02:00
Daniel Eklöf
7e0cfd46c6
doc: foot.1: remove ‘--’ from example command line
2020-10-08 19:54:28 +02:00
Daniel Eklöf
4c242cacb3
doc: foot.ini: mention that ‘lines’ is rounded up to nearest power of 2
2020-10-08 19:54:06 +02:00
Daniel Eklöf
219dbad5b5
doc: foot.ini: “top at” -> “top of”
2020-10-08 19:53:49 +02:00
Daniel Eklöf
17d6e85e1c
doc: foot.ini: it’s foot.ini, not foot.init
2020-10-08 19:53:30 +02:00
Daniel Eklöf
279341dd8e
render: apply opacity correctly when in reverse video mode
2020-10-08 19:53:11 +02:00
Daniel Eklöf
2b3cfb525a
changelog: fix CSI escape sequence
2020-10-08 19:52:10 +02:00
Daniel Eklöf
2ebd7a3dd7
doc: foot.ini: the tweak section is called ‘tweak’, not ‘tweaks’
2020-10-07 18:38:54 +02:00
Daniel Eklöf
b1bdc2d4c1
config: ignore key/value pairs following an invalid section name
...
When we detected an invalid section name, we correctly logged this and
warned the user.
However, the internal state machine now had an invalid section enum
value. This caused a crash when the next key/value pair was to be
parsed and we tried to lookup which parser function to call.
Closes #159 .
2020-10-07 18:34:48 +02:00
Daniel Eklöf
4ac5df079a
readme: add link to the ‘Performance’ page on the wiki
2020-10-06 21:15:56 +02:00
Daniel Eklöf
9f9ad69849
term: cursor-left: unlikely -> likely for reverse-wrap
...
Since reverse wrap-around is enabled by default, we’re *likely* to
take this branch.
2020-10-06 19:05:11 +02:00
Daniel Eklöf
e36d907f3d
Merge branch 'reverse-wrap' into master
...
Closes #150
2020-10-06 19:03:20 +02:00
Daniel Eklöf
207b24538d
term: enable reverse wrap-around by default
...
Since we’re now doing reverse auto-wrapping by default, we add
‘bw’ (‘auto_left_margin’)to terminfo.
2020-10-06 18:42:26 +02:00
Daniel Eklöf
7e78c82de7
doc: benchmark: update with ‘laptop’ results after 1.5 release
2020-10-03 16:40:49 +02:00
Daniel Eklöf
71c54fb87c
csi: xtrestore: add ‘reverse wrap’
2020-10-03 11:53:03 +02:00
Daniel Eklöf
97e07c1ea1
term: cursor-left: don’t do reverse-wrapping unless auto-margins are enabled
...
This matches XTerm’s behavior.
2020-10-03 10:50:28 +02:00
Daniel Eklöf
1ad766f4fb
changelog: reverse auto-wrap
2020-10-02 21:44:03 +02:00
Daniel Eklöf
377f1b7ad3
vt: BS: *only* reset lcf if cursor is beyond right margin: don’t move cursor
...
This is needed to make reverse auto-wrap work correctly. Without it,
we’ll end up moving the cursor left one cell extra.
2020-10-02 21:40:30 +02:00
Daniel Eklöf
03cacaba86
term: cursor-left: reverse-wrap when cursor is at the left margin
...
Assuming the private mode ‘reverse-wrap’ has been enabled.
2020-10-02 21:30:32 +02:00
Daniel Eklöf
060be30803
term: add private mode flag ‘’reverse-wrap’
2020-10-02 21:29:56 +02:00
Daniel Eklöf
5594746e49
Revert "term: cursor-left: reduce move count by one when lcf=true"
...
This reverts commit 02e3e4ac9b .
This broke at least Emacs. Cursor movement at the margins *is*
undefined, and the behavior we’re now reverting to matches XTerm.
2020-10-02 20:02:36 +02:00
Daniel Eklöf
02e3e4ac9b
term: cursor-left: reduce move count by one when lcf=true
...
When lcf is true, cursor is actually beyond the right margin, but the
stored coordinate is at the margin.
This means we need to reduce the number of cells to move the cursor by
one.
This fixes an issue where e.g. backspacing when the cursor is at the
right margin erased the next-to-last character instead of the last
character.
2020-10-01 20:08:29 +02:00
Daniel Eklöf
1110108c84
changelog: trackpad scrolling: ‘multiplier’ is in the ‘scrollback’ section
2020-09-29 19:47:29 +02:00
Daniel Eklöf
5171abb188
Merge branch 'trackpad-scroll-speed' into master
...
Closes #144
2020-09-29 19:44:32 +02:00
Daniel Eklöf
9c84b08ae4
changelog: multiplier: the option belongs to the ‘scrollback’ section
2020-09-29 19:43:39 +02:00
Daniel Eklöf
2cee11d74d
changelog: multiplier default value changed from 1.0 -> 3.0
2020-09-29 19:42:50 +02:00
Daniel Eklöf
ebd1476baf
config: change default multiplier from 1.0 -> 3.0
2020-09-29 19:42:50 +02:00
Daniel Eklöf
08c1b35614
changelog: reword trackpad scrolling speed entry
2020-09-29 19:42:47 +02:00