Commit graph

2629 commits

Author SHA1 Message Date
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
Daniel Eklöf
4179e480e8
config: use correct config file path when logging errors and warnings 2020-09-06 14:48:15 +02:00
Daniel Eklöf
c40ada903d
doc: foot.ini: max-shm-pool-size-mb: a value of 0 disables the feature 2020-09-06 09:34:58 +02:00
Daniel Eklöf
dd19173989
Merge branch 'improve-handling-of-private-usage-area-characters' into master
Closes #116
2020-09-06 08:28:20 +02:00
Daniel Eklöf
123c94379b
doc: foot.ini: remove empty lines after option name 2020-09-05 09:38:48 +02:00
Daniel Eklöf
3b763c12cb
Merge branch 'handle-xdg-output-manager-coming-after-output-objects' into master
Closes #118
2020-09-04 20:03:10 +02:00
Daniel Eklöf
26d37b3305
changelog: output objects received before XDG output manager 2020-09-04 18:08:37 +02:00
Daniel Eklöf
f2c59f8608
wayland: register xdg-output interface on pre-existing output objects
The XDG output manager object may arrive *after* output objects. In
this case, we need to register the pre-existing output objects with
the XDG output manager.

This fixes an issue with some monitors having a DPI value of 0 on
Gnome/mutter, which resulted in incorrect font sizes.
2020-09-04 17:56:40 +02:00
Daniel Eklöf
b71016c25d
render: optionally enable heuristics that deal with private usage area chars
Try to detect double-width *glyphs* for single-width *characters*, and
allow them to overflow into the next cell.

This is only done for single-width chars with a glyph width that is at
least 1.5 cells wide, but at most 3 cells.

The feature is gated by the new
‘tweak.allow-overflowing-double-width-glyphs’, and is disabled by
default.

Closes #116
2020-09-03 17:37:44 +02:00
Daniel Eklöf
bb8d9378c9
Merge branch 'refresh-margins-on-background-palette-change' into master
Closes #94
2020-09-01 18:49:34 +02:00
Daniel Eklöf
b76d196569
render: ’redraw_margins’ is now a parameter to grid_render()
render_refresh_margins() now passes ’true’ here, instead of re-setting
term->render.last_buf to NULL.
2020-09-01 08:01:48 +02:00
Daniel Eklöf
d579c0e1e4
osc: explicitly refresh margins on a background color change 2020-09-01 07:34:41 +02:00
Daniel Eklöf
2488c3935b
render: implement render_refresh_margins()
For now, it will reset term->render.last_buf to NULL, and then calls
grid_render() to do a full screen refresh.
2020-09-01 07:33:44 +02:00
Daniel Eklöf
52af2694ff
Merge branch 'config-file-location' into master
Closes #110.
2020-08-28 18:11:12 +02:00
Daniel Eklöf
b957f2faa7
doc: meson: @01@ -> @1@ 2020-08-27 21:22:27 +02:00
Daniel Eklöf
6f114f639a
config: close FD if it is *valid*, not when it is *invalid* 2020-08-27 21:11:03 +02:00
Daniel Eklöf
a24109a5e3
doc: foot.ini: highlight configuration file paths with bold, not italic/underline 2020-08-27 21:09:54 +02:00
Daniel Eklöf
fdb1f64cae
readme: remove stray ’;9~’ sequence 2020-08-27 21:08:24 +02:00
Daniel Eklöf
df35b09142
main: usage: footrc -> foot.ini 2020-08-27 20:03:30 +02:00
Daniel Eklöf
3309d8d779
changelog: new configuration file location 2020-08-27 20:02:43 +02:00
Daniel Eklöf
5c4af880fc
doc: rename footrc.5 to foot.ini.5, and update references 2020-08-27 20:02:30 +02:00
Daniel Eklöf
44e7943fef
codespell: selection: faild -> failed 2020-08-27 19:55:27 +02:00
Daniel Eklöf
f7c2940880
readme: update references to the configuration file 2020-08-27 19:53:31 +02:00
Daniel Eklöf
865127d836
footrc: move to foot.ini 2020-08-27 19:53:31 +02:00
Daniel Eklöf
6dbd87016f
config: prefer loading configuration from $XDG_CONFIG_HOME/foot/foot.ini 2020-08-27 19:53:31 +02:00
Daniel Eklöf
32e2173b5d
Merge branch 'scrollback-indicator-positioning' into master
Closes #108
2020-08-27 19:52:47 +02:00
Daniel Eklöf
0e89302da2
Merge branch 'block-input-events-while-pasting' into master
Closes #101
2020-08-27 19:51:37 +02:00
Daniel Eklöf
c8d0dc5750
render: scrollback indicator: only leave room for search box when necessary 2020-08-26 19:12:12 +02:00
Daniel Eklöf
1109865c8e
render: scrollback indicator: subtract visible rows from populated rows
This prevents the indicator from starting too high up when the number
of used scrollback rows is low.
2020-08-26 19:10:00 +02:00
Daniel Eklöf
32639e442f
Merge branch 'xcalloc-fix' into master 2020-08-26 18:56:12 +02:00
Craig Barnes
fe9eaf3aaf xmalloc: fix edge case handling in xcalloc() function 2020-08-25 20:49:24 +01:00
Daniel Eklöf
139f59c27d
Merge branch 'type-limit-fixes' into master 2020-08-25 20:49:29 +02:00
Craig Barnes
f3acfea815 fix some buggy comparisons relating to signed/unsigned types 2020-08-25 19:39:17 +01:00
Daniel Eklöf
1707db1678
selection: don't initiate a paste when we're already pasting 2020-08-25 18:56:15 +02:00
Daniel Eklöf
9ec4c3fd94
selection: must use term_paste_data_to_slave() for paste data 2020-08-25 18:56:15 +02:00
Daniel Eklöf
91a839bf8e
term: enqueue data: cleanup 2020-08-25 18:56:15 +02:00
Daniel Eklöf
efbc3431ed
selection: clipboard callback: assert we're in sending-paste-data mode 2020-08-25 18:56:15 +02:00
Daniel Eklöf
2762e044aa
changelog: fixed input events from getting mixed with paste data 2020-08-25 18:56:15 +02:00
Daniel Eklöf
e570146c07
selection: block non-paste data from being sent to client while pasting
While pasting data from the clipboard, block *all* other data from
being sent to the client. This includes keyboard and mouse events, but
also replies for VT queries.

This is particularly important when bracketed paste has been enabled,
since then the client will interpret *everything* between the
bracketed paste start and end as paste data.
2020-08-25 18:56:15 +02:00
Daniel Eklöf
81222dac57
selection: add a 2 second timeout when receiving clipboard data
When reading clipboard data, a malicious clipboard provider could
stall us forever, by not sending any data, and not closing the pipe.

This commit adds a timer_fd based timeout of 2 seconds. If the timer
triggers, we abort the clipboard receive.
2020-08-25 18:56:13 +02:00
Daniel Eklöf
777a2eac51
Merge branch 'pedantic' into master 2020-08-25 18:54:21 +02:00
Daniel Eklöf
8fb7347150
meson/pkgbuild: bump tllist requirement to 1.0.4
This is the first version of tllist that compiles with '-pedantic'.
2020-08-25 18:52:44 +02:00
Daniel Eklöf
cc24c5f2e0
render: scrollback position: only count _used_ scrollback lines
When calculating where in the scrollback history we are, we previously
did this against the total number of scrollback lines. I.e. the
`scrollback.lines` setting in `footrc`.

Now, we count only the used/allocated scrollback lines.

Note that the initial indicator position might still seem to start a
bit high up, if the number of used scrollback lines is low. This is
because we use the *top* of the screen for the current position. Thus,
we'll never be at the bottom (except for the special case when
we're *really* at the bottom).
2020-08-25 18:45:04 +02:00