Commit graph

6841 commits

Author SHA1 Message Date
Piotr Kocia
c22ec6a9b9 fix vimode selection breaking on focus loss 2025-12-02 11:25:03 +01:00
Piotr Kocia
8215c8598d do not end vimode selection on focus loss 2025-12-02 11:25:03 +01:00
Piotr Kocia
fefe3c7d81 reformat comments 2025-12-02 11:25:03 +01:00
Piotr Kocia
94d773a262 fix selection outside view crashes 2025-12-02 11:25:03 +01:00
Piotr Kocia
5fc55b8fbd mouse scrolling and selection 2025-12-02 11:25:03 +01:00
Piotr Kocia
a163484f25 restore cursor position inbetween consecutive searches 2025-12-02 11:25:03 +01:00
Piotr Kocia
19e8dad788 fix crash on cursor refresh 2025-12-02 11:25:03 +01:00
Piotr Kocia
4a0c7d6f0b fix pgo not compiling 2025-12-02 11:25:03 +01:00
Piotr Kocia
01d26270f6 fix incorrect counts in tests 2025-12-02 11:25:03 +01:00
Piotr Kocia
f41558fc80 add movement and deletion search keybinds 2025-12-02 11:25:03 +01:00
Piotr Kocia
7b3d7bf1f1 add unicode-input to search 2025-12-02 11:25:03 +01:00
Piotr Kocia
9f9c1e11e2 implement paste 2025-12-02 11:25:03 +01:00
Piotr Kocia
c1eee29fbe fix highlights being cleared on confirm 2025-12-02 11:25:03 +01:00
Piotr Kocia
ae09b12501 fix vimode not working in alt grid 2025-12-02 11:25:03 +01:00
Piotr Kocia
210325d8aa reformat 2025-12-02 11:25:03 +01:00
Piotr Kocia
41987537cf comment fixes 2025-12-02 11:25:03 +01:00
Piotr Kocia
68685fdf13 highlight colors 2025-12-02 11:25:03 +01:00
Piotr Kocia
2609206c98 add vimode cursor as tracking point to reflow 2025-12-02 11:25:03 +01:00
Piotr Kocia
a168a78087 resolve todos 2025-12-02 11:25:03 +01:00
Piotr Kocia
602e6c1ebc increment/decrement follow cursor 2025-12-02 11:25:03 +01:00
Piotr Kocia
36784b59fa remove search.c and search.h 2025-12-02 11:25:03 +01:00
Piotr Kocia
02fdc26fcb cleanup 2025-12-02 11:25:03 +01:00
Piotr Kocia
26266dff3b motions 2025-12-02 11:24:53 +01:00
Piotr Kocia
23c95f1dea minor cleanup 2025-12-02 11:00:05 +01:00
Piotr Kocia
2d8e1d7295 render prestring 2025-12-02 11:00:05 +01:00
Piotr Kocia
2033b267d8 rename 2025-12-02 11:00:05 +01:00
Piotr Kocia
66a3e53b31 fix selection 2025-12-02 11:00:05 +01:00
Piotr Kocia
358155ac7d refresh vimode cursor 2025-12-02 11:00:05 +01:00
Piotr Kocia
ada54c7b86 fix FIRST_LINE 2025-12-02 11:00:05 +01:00
Piotr Kocia
4aacf44e8b remove quote-wise selection mode 2025-12-02 11:00:05 +01:00
Piotr Kocia
43dd569afc search highlights 2025-12-02 11:00:05 +01:00
Piotr Kocia
67120e9940 implement search 2025-12-02 11:00:05 +01:00
Piotr Kocia
e2c4ea3535 initial vimode implementation 2025-12-02 11:00:05 +01:00
Daniel Eklöf
be19ca2b20
client: add missing <limits.h> (for CHAR_MAX)
Closes #2221
2025-11-29 09:47:22 +01:00
Daniel Eklöf
fc9625678f
config: add toplevel-tag=TAG
Add support for the new xdg-toplevel-tag-v1 Wayland protocol, by
exposing a new config option, `toplevel-tag`, and a corresponding
command option, `--toplevel-tag` (in both `foot` and `footclient`).

This can help the compositor with session management, or custom window
rules.

Closes #2212
2025-11-12 11:04:25 +01:00
Daniel Eklöf
c9abab0807
changelog: triple-click when there's a quote in the last column 2025-11-12 07:46:34 +01:00
Johannes Altmanninger
5cb8ff2e9c
Fix assertion failure triple-clicking line with quote in last column
By default, triple-click tries to select quoted strings within a
logical line.  This also works if the line spans multiple screen lines.

If there is a quote character in the last column:

	printf %"$COLUMNS"s \'; printf wrapped; sleep inf

and I triple-click on the following soft-wrapped line, there's an
assertion failure because the column next to the quote is out of range.

The quote position has been found by walking at least one cell
backwards from "pos". This means that if the quote position is in
the very last column, there must be a row below.

Also move the assertion to be a pre-condition, though that's debatable.
2025-11-12 07:41:35 +01:00
Daniel Eklöf
1fce0e69f5
changelog: case sensitive scrollback search: move to correct release 2025-11-01 08:12:52 +01:00
Daniel Eklöf
9728ada028
csi: focus mode (private mode 1004): send focus event immediate, when enabled
This lets the application now the current state, without having to
wait for the user to switch focus.

Fixes #2202
2025-11-01 08:12:03 +01:00
Ronan Pigott
143f220527
search: do not emit composing keys
When we are in the composing state for XCompose key sequences, we
should not add the compose component keys to the search buffer.
2025-11-01 08:08:55 +01:00
c4llv07e
5ae4955e83
search: use case insensitive search only if there's no uppercase in search 2025-10-30 06:36:12 +01:00
c4llv07e
71de0c45bc
char32: add helper functions to work with c32 case 2025-10-30 06:35:02 +01:00
Andrei
19466a21d8 doc: foot.ini: fix typo 2025-10-24 11:11:52 -07:00
Daniel Eklöf
5587604469
input: keymap(): use a goto-label on error, to ensure we always close the keymap FD 2025-10-18 08:23:53 +02:00
Daniel Eklöf
82e75851e4
changelog: add new 'unreleased' section 2025-10-16 08:50:31 +02:00
Daniel Eklöf
e114a5f02f
Merge branch 'releases/1.25' 2025-10-16 08:50:13 +02:00
Daniel Eklöf
b44a62724c
meson: bump version to 1.25.0 2025-10-16 08:46:58 +02:00
Daniel Eklöf
dc5a921d2c
changelog: prepare for 1.25.0 2025-10-16 08:46:36 +02:00
Daniel Eklöf
612adda384
render: don't warn about immediate buffer release if pre-apply-damage has been activated 2025-10-16 08:45:07 +02:00
Daniel Eklöf
dbf18ba444
wayland: always render a new frame after a fullscreen change
This is needed, since we disable alpha in fullscreen, and since we use
different image buffer formats (XRGB vs. ARGB) when we have alpha
vs. when we don't (and fullscreen always disables alpha).

Normally, this happens anyway, as the window is resized when going in
or out from fullscreen. But, it's technically possible for a
compositor to change an application's fullscreen state without
resizing the window.
2025-10-15 09:41:52 +02:00