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
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.
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.
This fixes an off by one, where we sometimes "ate" an extra space when
extracting contents with tabs. This happened if the tab (and its
subsequent spaces) were followed by an additional space.
Closes#2194
Before this patch, we always blended towards black when dimming
text. However, with light color themes, it usually looks better if we
dim towards white instead.
This option allows you to choose which color to blend towards.
The default is 'black' in '[colors]', and 'white' in '[colors2]'.
Closes#2187
When exiting fullscreen mode, the window's transparency was not being
restored, leaving it opaque until another window was fullscreened.
This occurred because the Wayland opaque region was set based only on
the configured alpha value, without considering the fullscreen state.
Since commit
899b768b74 ("render: disable transparency when we're fullscreened")
transparency is disabled during fullscreen to avoid
compositor-mandated black backgrounds affecting the intended colors.
However, the opaque region was not being updated when the fullscreen
state changed.
Fixes: https://codeberg.org/dnkl/foot/issues/2180
Signed-off-by: Charalampos Mitrodimas <charmitro@posteo.net>