Commit graph

2714 commits

Author SHA1 Message Date
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
Daniel Eklöf
a0ce7e40af
input: trackpad scroll: correctly convert pixel movements to line movements
Trackpad scroll movements are in pixels. Foot previously “translated”
these directly to line movements (i.e. a one pixel scroll event was
translated into a one line scroll).

Now we use the line height of the terminal and correctly convert
pixels to lines.

This makes the trackpad scroll speed in foot consistent with the
scroll speed in e.g. Alacritty and Kitty.
2020-09-29 19:42:31 +02:00
Daniel Eklöf
9015f37198
Merge branch 'reflow-retain-scrollback-position' into master
Closes #142
2020-09-29 19:40:38 +02:00
Daniel Eklöf
1718449ca6
grid: reflow: fix release build; ‘idx’ is only used in an assert() 2020-09-29 19:40:17 +02:00
Daniel Eklöf
8c18304287
grid: reflow: handle viewport being too far down when enlarging the window
If the viewport is close to the bottom, but not *at* the bottom, and
we’re enlarging the window, the translated viewport will be too far
down.
2020-09-29 19:40:17 +02:00
Daniel Eklöf
a0d1d2f1c8
grid: reflow: retain scrollback position
Closes #142
2020-09-29 19:40:14 +02:00
Daniel Eklöf
70f1274171
Merge branch 'osc4-refresh-scheduling' into master
Closes #141
2020-09-29 19:38:56 +02:00
Daniel Eklöf
002648d2a9
changelog: fixed color flashes with OSC 4,10,11 2020-09-29 10:11:03 +02:00
Daniel Eklöf
7ffd31e13a
render: remove render_refresh_margins() 2020-09-29 10:08:59 +02:00
Daniel Eklöf
edb904a187
osc: don’t explicitly call render_refresh() when changing the color palette
Doing so will schedule the renderer “as soon as possible”. I.e we’re
by-passing the regular scheduler, and thus we’re by-passing the user’s
setting of the delayed-render-* timers.

The fact that we’re scheduling “as soon as possible” also means we’re
much more likely to trigger flickering, or color flashes, if the
application is changing colors which are on the screen.

To handle changes to the cursor color(s), use the new
term_damage_cursor() instead of render_refresh().

To handle background color changes, which affect the margins, use the
new term_damage_margins() instead of render_refresh_margins(),

Closes #141
2020-09-29 10:05:52 +02:00
Daniel Eklöf
b19e07ad1c
render: term->render.margins is used to explicitly tell us to re-render margins 2020-09-29 10:04:41 +02:00
Daniel Eklöf
5116e40581
term: add term_damage_cursor() and term_damage_margins()
term_damage_cursor() damages the cell where the cursor is currently
at. This can be used to ensure the cursor is re-drawn, if there aren’t
any other pending updates.

term_damage_margins() requests the margins be redrawn the next time we
render the grid.
2020-09-29 10:04:18 +02:00
Daniel Eklöf
be9736dea3
Merge branch 'allow-mouse-binding-click-count-less-than' into master 2020-09-27 14:43:49 +02:00
Daniel Eklöf
6a089c92ca
input: mouse: match binding if binding’s click count is *less*
Allow a mouse binding to match even if its click count is less than
the actual click count.

If there are multiple bindings that match, use the one with the
highest click count (that less than, or equal to the actual click
count).

Closes #146
2020-09-27 14:31:39 +02:00
Daniel Eklöf
d263cb9723
install: say _why_ ncurses and scdoc is needed 2020-09-24 17:33:44 +02:00
Daniel Eklöf
a683a13120
Revert "meson: add -Dwith-docs=disabled|enabled|auto"
This reverts commit 9d6b2c9342.
2020-09-24 16:44:26 +02:00
Daniel Eklöf
e3eb58d483
Merge branch 'make-doc-generation-optional' into master 2020-09-24 16:40:44 +02:00
Daniel Eklöf
9d6b2c9342
meson: add -Dwith-docs=disabled|enabled|auto
When enabled, man pages are generated and installed, along with
README.md, CHANGELOG.md and LICENSE. This requires ‘scdoc’ as a make
dependency.

When disabled, ‘scdoc’ is no longer required, no man pages will be
built, and no documentation at all is installed.

Defaults to ‘enabled’.
2020-09-24 16:39:19 +02:00
Daniel Eklöf
f8174ebb93
changelog: add new ‘unreleased’ section 2020-09-18 21:29:39 +02:00
Daniel Eklöf
43fc1af36c
Merge branch 'releases/1.5' into master 2020-09-18 21:29:10 +02:00
Daniel Eklöf
bfe3dfaf5c
meson/pkgbuild: bump version to 1.5.0 2020-09-18 21:23:27 +02:00
Daniel Eklöf
377a721b08
changelog: prepare for 1.5.0 2020-09-18 21:22:59 +02:00
Daniel Eklöf
70cf0966a5
changelog: add cherti to contributors 2020-09-18 21:22:27 +02:00
Daniel Eklöf
c244ff522e
Revert "changelog: add cherti to contributors"
This reverts commit 8f3692f9a6.
2020-09-18 21:22:10 +02:00
Daniel Eklöf
8f3692f9a6
changelog: add cherti to contributors 2020-09-18 21:20:12 +02:00
Daniel Eklöf
8dd358a8f4
meson/pkgbuild: bump fcft requirement to 2.3.0 2020-09-18 21:03:40 +02:00
Daniel Eklöf
fcb2beebda
selection: reset clipboard/primary->text after free:ing it 2020-09-17 20:05:22 +02:00
Daniel Eklöf
dd18710bb7
selection: primary unset: don’t free text twice 2020-09-17 20:02:38 +02:00
Daniel Eklöf
2e7102c956
render: fix rounding errors when setting initial window size and scale != 1
An odd cell width/height sometimes resulted in an odd grid
size. Combined with a scaling factor of e.g. 2, that led to a rounding
error when converting pixel sizes to logical window sizes.

As a result, the _next_ configure event would cause us to loose a
pixel, which led to us dropping a row from the grid.
2020-09-17 17:37:58 +02:00
Daniel Eklöf
185a6048a7
ci: fix path to junit report on release builds 2020-09-16 19:41:53 +02:00
Daniel Eklöf
0f0fec093e
ci: install fonts, needed for fcft tests 2020-09-16 19:38:50 +02:00
Daniel Eklöf
bcbf9872ec
ci: need the ‘dev’ version of ‘check’ on alpine 2020-09-16 19:29:46 +02:00
Daniel Eklöf
187b913050
ci: install ‘check’ - this enables fcft tests 2020-09-16 19:27:20 +02:00
Daniel Eklöf
0f7e9bc78a
ci: repair ninja test target 2020-09-16 19:19:51 +02:00