Commit graph

3500 commits

Author SHA1 Message Date
Tadeo Kondrak
95c0c89cac
Send text_input_rectangle requests for text-input 2021-01-28 22:22:01 -07:00
Daniel Eklöf
c1675af103
Merge branch 'delay-tiocswinsz-on-interactive-resize'
Closes #283
Closes #301
2021-01-26 20:32:04 +01:00
Daniel Eklöf
0d4dc7e44b
Merge branch 'search-extend-to-word-boundary-handle-composed-chars' 2021-01-26 20:31:16 +01:00
Daniel Eklöf
2310ffd1b8
search: match composed characters when extending the search string to the next word boundary 2021-01-26 20:26:34 +01:00
Daniel Eklöf
e9fa8bb219
Merge branch 'search-match-multi-column-chars-2' 2021-01-26 20:18:08 +01:00
Daniel Eklöf
fc33619b19
search: fix matching of multi-column characters
We were matching the sub-sequence SPACERs as if they were regular
characters, which obviously failed.
2021-01-26 20:05:14 +01:00
Daniel Eklöf
3a7588bc99
config: promote tweak.resize-delay-ms to a real, supported option 2021-01-26 19:32:21 +01:00
Daniel Eklöf
7cba42c5ce
doc: foot.ini: resize-delay-ms: language tweaks 2021-01-26 19:32:20 +01:00
Daniel Eklöf
d1a0892131
doc: foot.ini: explicitly say that 0 disables the delay 2021-01-26 19:32:20 +01:00
Daniel Eklöf
22a659881b
doc: foot.ini: resize-delay-ms 2021-01-26 19:32:20 +01:00
Daniel Eklöf
af0fbdfd07
changelog: tiocswinsz is now delayed by 100ms while doing an interactive resize 2021-01-26 19:32:19 +01:00
Daniel Eklöf
a2b3ab6d9e
render: remove unneeded parantheses 2021-01-26 19:32:07 +01:00
Daniel Eklöf
b4f1f72585
render: don’t center content while doing an interactive resize 2021-01-26 19:32:07 +01:00
Daniel Eklöf
2dc774fb17
render: remove debug logging 2021-01-26 19:32:07 +01:00
Daniel Eklöf
c82cb8bcc7
render: codespell: tiemout -> timeout 2021-01-26 19:32:07 +01:00
Daniel Eklöf
9a1df7bb03
render: delay TIOCSWINSZ while doing an interactive resize
Instead of disabling content centering, delay the TIOCSWINSZ (a.k.a
delay sending the new dimensions to the client) by a small amount
while doing an interactive resize.

Non-interactive resizes are still immediate.

For now, force a resize when the user stops the interactive
resize. This ensures the client application receives the new
dimensions immediately.

It still works without the last, forced, resize, but there typically
be a small delay until the client application receives the final
dimensions.

Closes #301
Closes #283
2021-01-26 19:32:06 +01:00
Daniel Eklöf
6876ab6bc2
wayland: pending ‘configure’ flags: use ’bool’ in bit-fields 2021-01-26 19:32:06 +01:00
Daniel Eklöf
773b61eb79
wayland: force a resize on the final configure event after an interactive resize
This is needed to apply content centering after an interactive resize,
as otherwise we’d just ignore the last configure event since the only
difference between that event and the next to last event is that the
is-resizing bit has been cleared. I.e. the window size is identical to
what we already have, and our resize code would thus ignore the event.
2021-01-26 19:32:06 +01:00
Daniel Eklöf
3948145d66
render: don’t center content while we’re being resized
Doing so causes the content to jump around while interactively
resizing the window.
2021-01-26 19:32:06 +01:00
Daniel Eklöf
4ebd58e388
wayland: track is-resizing state 2021-01-26 19:32:06 +01:00
Daniel Eklöf
77186d16e8
wayland: pack booleans in the “pending” configure struct 2021-01-26 19:32:06 +01:00
Daniel Eklöf
a6456911e7
Merge branch 'strip-control-characters-from-pasted-text'
Closes #306
2021-01-26 19:31:31 +01:00
Daniel Eklöf
49d6dbd761
selection: remove duplicate ‘ESC’ in switch case 2021-01-26 19:31:23 +01:00
Daniel Eklöf
e70776fc8c
selection: DEL is 0x7f, not 0x1f 2021-01-26 19:31:23 +01:00
Daniel Eklöf
9e5ef6efac
selection: codespell: stript -> strip 2021-01-26 19:31:23 +01:00
Daniel Eklöf
357af41d7e
selection: strip non-formatting C0, BS, HT and DEL from pasted text 2021-01-26 19:31:21 +01:00
Daniel Eklöf
b31d0c080b
selection: unbreak text/uri-list decoding: we’re not using \r, not \n
Before passing the pasted text to the decoder, we now replace \r\n,
and \n, with \r.

The URI decoder was looking for a \n, which meant we failed to split
up the list and instead pasted a single “multi-line” URI.
2021-01-26 19:31:12 +01:00
Daniel Eklöf
5168aa72cd
selection: replace \r\n and \n with \r, and strip \e from pasted text
Closes #305
Closes #306
2021-01-26 19:31:12 +01:00
Daniel Eklöf
74f92c3959
Merge branch 'ime-preedit-cursor-at-the-end-of-the-preedit-string' 2021-01-26 19:30:42 +01:00
Daniel Eklöf
a763531775
ime: fix rendering of pre-edit cursor when positioned after the pre-edit string
We failed to convert the byte-indices to cell indices, resulting in a
box cursor covering the entire pre-edit string.

Note that in addition to fixing the translation from byte index to
cell index, the rendered had to be updated to dirty one extra cell
from the original grid.

Without this, we left trailing cursors behind us when the user deleted
text from the pre-edit string.
2021-01-26 19:30:34 +01:00
Daniel Eklöf
27f9972880
Merge branch 'search-fix-rendering-of-combining-characters-with-positive-x-offsets' 2021-01-26 19:30:02 +01:00
Daniel Eklöf
8f3fcf8275
search: ad-hoc workaround for combining characters with positive x-offsets
When rendering the search input box, do the same ad-hoc workaround for
combining characters with a positive x-offset as we do when rendering
normal grid cells.

In this case, we don’t *know* when we’re dealing with combining
characters. But we can detect zero-width characters. For these, check
their glyph’s x-offset. If positive, adjust it like we do when
rendering combining glyphs in the main grid, to ensure the glyph is
positioned over the _previous_ character, not the next.
2021-01-26 19:29:55 +01:00
Daniel Eklöf
a306d37470
Merge branch 'search-dont-scan-scrollback-on-cursor-movement' 2021-01-26 19:29:24 +01:00
Daniel Eklöf
dd1df60160
changelog: high cpu usage while holding down e.g. arrow keys in search mode 2021-01-26 19:29:15 +01:00
Daniel Eklöf
dd8a6fdd4d
search: don’t re-scan the scrollback unless the search string actually has changed 2021-01-26 19:29:05 +01:00
Daniel Eklöf
89b810261e
Merge branch 'search-match-composed-characters' 2021-01-26 19:28:21 +01:00
Daniel Eklöf
0397e91eaa
Merge branch 'search-box-no-non-printables' 2021-01-26 19:27:43 +01:00
Daniel Eklöf
95551f902b
changelog: search input box no longer accepts non-printables 2021-01-24 12:13:37 +01:00
Daniel Eklöf
d3d5897bb7
search: fix matching against composed characters 2021-01-24 12:05:57 +01:00
Daniel Eklöf
cbf90d67a2
search: filter out non-printable characters
Don’t allow non-printable characters in the search input string.
2021-01-24 11:32:45 +01:00
Daniel Eklöf
e7b8f95af7
Merge branch 'selection-to-clipboard'
Closes #288
2021-01-23 10:44:45 +01:00
Daniel Eklöf
3d60600897
config: selection-target: space-optimize the static ‘value’ array 2021-01-23 10:44:19 +01:00
Daniel Eklöf
b8685e17ea
doc: foot.ini: selection-target=none|primary|clipboard|both 2021-01-23 10:44:19 +01:00
Daniel Eklöf
821935e5af
changelog: selection-target=none|primary|clipboard|both 2021-01-23 10:44:17 +01:00
Daniel Eklöf
4f578189cc
config: add ‘none’ as a possible value for ‘selection-target’
When ‘selection-target’ is set to ‘none’, selecting text does not copy
the text to _any_ clipboard.

This patch also refactors the value parsing to be data driven.
2021-01-23 10:43:59 +01:00
Daniel Eklöf
07f6b3b1af
selection: copy selected text to the target configured by ‘selection-target’
Closes #288
2021-01-23 10:43:59 +01:00
Daniel Eklöf
e69ca255b0
config: add new option ‘selection-target’
This option controls the clipboard target that selected text should be
copied to.
2021-01-23 10:43:59 +01:00
Daniel Eklöf
1253f5e27e
Merge branch 'mouse-button-encoding-of-button-6-7' 2021-01-23 10:41:35 +01:00
Daniel Eklöf
1bcee31398
changelog: add bug ref to the ‘FreeBSD support’ entry 2021-01-23 10:19:28 +01:00
Daniel Eklöf
a6b66b73b1
Merge branch 'freebsd'
Closes #238
2021-01-23 10:12:54 +01:00