Commit graph

2671 commits

Author SHA1 Message Date
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
Daniel Eklöf
cf04e93e4b
ci: upload junit XML reports 2020-09-16 19:18:07 +02:00
Daniel Eklöf
6b20533b62
ci: explicitly enable harfbuzz in fcft 2020-09-16 19:13:22 +02:00
Daniel Eklöf
1347609c7c
ci: enable fcft’s text-shaping tests 2020-09-16 19:09:07 +02:00
Daniel Eklöf
2593459b55
Merge branch 'configurable-alternate-scroll-mode' into master
Closes #135
2020-09-16 08:05:56 +02:00
Daniel Eklöf
f30d7cce27
doc: foot.ini: alternate-scroll-mode: fix highlighting of CSI escape 2020-09-16 08:05:38 +02:00
Daniel Eklöf
3e9186a042
changelog: mouse events -> mouse scroll events 2020-09-15 19:29:38 +02:00
Daniel Eklöf
f2497320c6
config: add mouse.alternate-scroll-mode option
This option controls the initial state of the Alternate Scroll Mode,
and defaults to ‘enabled’.
2020-09-15 19:12:29 +02:00
Daniel Eklöf
04c1bab7b0
input: mouse_scroll(): refactor 2020-09-15 18:57:00 +02:00
Daniel Eklöf
cb41db8596
input: don’t use stale keycodes for arrow-up/down
The keycodes will change if the seat’s keymap changes. Make sure we
only do alternate scrolling if the seat has a keyboard, and use
the *current* layout’s keycodes for arrow up/down (instead of
the *first* layout’s).
2020-09-15 18:44:54 +02:00
Daniel Eklöf
028bbd03a3
input: don’t do alternate mode scrolling if application is grabbing mouse 2020-09-15 18:40:51 +02:00
Daniel Eklöf
6ad90e6323
input: don’t do grid scrollback if mouse events are being captured 2020-09-15 18:33:58 +02:00
Daniel Eklöf
0bba1edb9c
meson/pkgbuild: require fcft-2.2.90 2020-09-15 08:03:52 +02:00
Daniel Eklöf
fdfdbba9a0
render: best-effort attempt to set initial window size in chars when scale != 1
The initial window size is set *before* we’re initially mapped. This
means we don’t (yet) know on which output we’ll be mapped. _That_
means we don’t know which scaling factor to use.

This implements a best effort attempt, where we use the “guessed”
scaling factor. This will always be correct in single-monitor
configurations, but may be wrong in multi-monitor setups with
different scaling factors.
2020-09-14 17:36:56 +02:00
Daniel Eklöf
51a7e44fa2
config: add tweak.scaling-filter
Use the new fcft_set_scaling_filter() API to use a non-default scaling
filter.

By default, we use lanczo3, the ‘best’ filter. This overrides the
default in fcft, which is ‘cubic’ filtering.
2020-09-13 17:59:56 +02:00
Daniel Eklöf
6a9725c7a6
config: log warning when new boolean tweak options have been enabled 2020-09-12 19:52:52 +02:00
Daniel Eklöf
2d4a59ab99
Merge branch 'scroll-half-page' into master
Closes #128
2020-09-11 18:22:09 +02:00
Daniel Eklöf
4d13429235
key-binding: deprecate scrollback-up/down, add scrollback-up/down-line
This deprecates/renames scrollback-up/down to scrollback-up/down-page.

It also renames scrollback-up/down-half to
scrollback-up/down-half-page, and adds the new bindings
scrollback-up/down-line.
2020-09-10 18:17:47 +02:00
Daniel Eklöf
c0156ed1e0
Merge branch 'hide-csd-buttons-when-title-bar-gets-too-small' into master 2020-09-10 07:38:03 +02:00
Daniel Eklöf
3a308cc870
render: csd: hide buttons when title bar gets too small to fit them 2020-09-10 07:37:54 +02:00
Daniel Eklöf
c841ab1ee1
Merge branch 'cursor-outside-visible-area-on-reflow' into master 2020-09-10 07:37:21 +02:00
Daniel Eklöf
a1ab31eea5
grid: reflow: make sure cursor is within the visible screen area
Even though we translate the cursor position from the old grid
coordinates to the new, the cursor may _still_ end up outside the
visible area.

Make sure it doesn’t.
2020-09-10 07:37:08 +02:00
Daniel Eklöf
fc510d423b
Merge branch 'osc52-clear-selection-on-invalid-payload' into master 2020-09-10 07:36:19 +02:00
Daniel Eklöf
2e3bd5e23c
config: add scrollback-{up,down}-half key bindings
These new bindings scroll up/down half a page in the
scrollback (instead of the full page scrolled by
‘scrollback-{up,down}’).

Closes #128.
2020-09-09 19:40:48 +02:00
Daniel Eklöf
a132e6cf84
config: spelling: mosue -> mouse 2020-09-09 19:04:24 +02:00
Daniel Eklöf
419bd87098
osc52: use first source that actually *has* data 2020-09-09 19:01:42 +02:00
Daniel Eklöf
776b831d89
osc52: unset (clear) selection when an invalid payload is received 2020-09-09 19:01:39 +02:00
Daniel Eklöf
dec6f963cb
selection: add selection_<type>_has_data()
Returns true when there is data available for paste in the
clipboard/primary selection.
2020-09-09 19:01:21 +02:00
Daniel Eklöf
c3cacb4704
selection: add selection_<type>_unset()
These functions clear the current selection.
2020-09-09 19:01:21 +02:00
Daniel Eklöf
99023cae99
Merge branch 'window-size-in-characters' into master 2020-09-09 19:00:30 +02:00
Daniel Eklöf
da091fb9d3
Merge branch 'keymap-shift-return' into master 2020-09-09 19:00:13 +02:00
Daniel Eklöf
0ff962a182
Merge branch 'fix-pipe-selected-not-being-recognized-as-a-valid-action' into master
Closes #125
2020-09-09 18:59:09 +02:00
Daniel Eklöf
eb6737ca25
Add -W,--window-size-chars, and foot.ini:initial-window-size-chars
* Add -W,--window-size-chars command line option
* Add initial-window-size-chars foot.ini option
* Add -w,--window-size-pixels command line option
* Add initial-window-size-pixels foot.ini option
* Deprecate -g,--geometry command line option in favor of
  -w,--window-size-pixels
* Deprecate geometry option in foot.ini in favor of
  initial-window-size-pixels
2020-09-08 19:41:00 +02:00
Daniel Eklöf
fa6ad0f030
changelog: move deprecation section up first, change most ‘footrc’ -> ‘foot.ini’
The deprecation sections mentions ‘footrc’ being deprecated, and
replaced by ‘foot.ini’. Since a lot of the changelog entries refer to
foot.ini, make sure the user sees this first.

Also, use foot.ini (and not footrc) consistently in all changelog entries.
2020-09-08 19:37:59 +02:00
Daniel Eklöf
04e8588e05
config: key binding: free pipe cmd/argv when action is invalid 2020-09-08 19:09:36 +02:00
Daniel Eklöf
eb45cb7b60
wayland: set BIND_ACTION_KEY_COUNT correctly
This fixes an issue where ‘pipe-selected’ were not recognized as a
valid key action.

Closes #125
2020-09-08 19:08:26 +02:00
Daniel Eklöf
18e00a55f6
keymap: emit \E[27;2;13~ for all key combinations involving Shift+Return
This is what XTerm emits with `modifyOtherKeys=1`, which is foot’s only mode.
2020-09-07 22:20:13 +02:00
Daniel Eklöf
e81d23befc
Merge branch 'tweak-damage-everything' into master 2020-09-07 19:44:54 +02:00
Daniel Eklöf
19ec06b999
Merge branch 'reflow-multi-column-composed-characters' into master 2020-09-07 19:41:42 +02:00
Daniel Eklöf
5f64c5c335
input: fix assertion when pressing first one mouse button, then another 2020-09-07 19:35:25 +02:00
Daniel Eklöf
6e4d29ef71
render: change minimum window size from 4x20 -> 1x2 (rows/cols) 2020-09-07 19:34:06 +02:00
Daniel Eklöf
61f950f77a
grid: reflow: calculate width of composed characters correctly
Before this patch, reflow called `wcwidth()` on our magic values for
composed characters.
2020-09-06 19:14:46 +02:00
Daniel Eklöf
f9cbdd3b11
changelog: scrollback indicator did not exist in 1.4(.4)
Thus it’s wrong to say its behavior has changed.
2020-09-06 19:05:17 +02:00
Daniel Eklöf
d040284cc7
config: add tweak.damage-whole-window
When enabled, foot will ‘damage’ the entire window, instead of just
the modified/updated rows.

This will force the compositor to redraw/blend the whole window.

This can be used to workaround an issue with fractional scaling in
Gnome, where random thin lines may appear.
2020-09-06 17:52:07 +02:00