Commit graph

5947 commits

Author SHA1 Message Date
Daniel Eklöf
becd8ed049
Merge branch 'releases/1.15' 2023-08-07 16:44:24 +02:00
Daniel Eklöf
f314699945
meson: bump version to 1.15.3 2023-08-07 16:39:54 +02:00
Daniel Eklöf
341a5eeefd
changelog: prepare for 1.15.3 2023-08-07 16:39:42 +02:00
Daniel Eklöf
5334e3d1aa
main: “title%s” -> “title=%s”
Fix regression of --title,-T option. This broken when command line
parsing was switched to using overrides, in
0b4f1b4af2.

Closes #1457
2023-08-07 16:38:06 +02:00
Daniel Eklöf
d00a2a222e
vt: fix ASAN UB warning
../vt.c:648:13: runtime error: signed integer overflow: 3924432811 * 2654435761 cannot be represented in type 'long'
  SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../vt.c:648:13 in

Closes #1456
2023-08-07 16:38:04 +02:00
Daniel Eklöf
a3d54614c7
render: OSD: center text vertically
Rewrite render_osd(), and instead of passing in an y-offset, let
render_osd() itself center the text inside the OSD buffer.

This is done using the same baseline calculation term_font_baseline()
does, except we use the buffer height instead of the line height.

Note that most OSDs are sized based on the line height...

Closes #1430
2023-08-07 16:38:03 +02:00
Daniel Eklöf
e567250449
main: translate command line options to overrides
Instead of special casing configuration affecting command line
options (like --font, --fullscreen, --maximized etc), translate them
to overrides, and let the configuration system handle them.

This also fixes an issue where -f,--font did not set csd.font, if
csd.font were otherwise unset.
2023-08-07 16:37:59 +02:00
Daniel Eklöf
e1d66ad0c1
changelog: add new ‘unreleased section’ 2023-08-07 16:37:46 +02:00
Daniel Eklöf
eea21070ee
changelog: “config” -> “config option” 2023-08-05 07:25:36 +02:00
Daniel Eklöf
be22736f23
main: “title%s” -> “title=%s”
Fix regression of --title,-T option. This broken when command line
parsing was switched to using overrides, in
0b4f1b4af2.

Closes #1457
2023-08-05 07:23:11 +02:00
Daniel Eklöf
12e0edd6e1
vt: fix ASAN UB warning
../vt.c:648:13: runtime error: signed integer overflow: 3924432811 * 2654435761 cannot be represented in type 'long'
  SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../vt.c:648:13 in

Closes #1456
2023-08-05 07:19:51 +02:00
Daniel Eklöf
90ad3d6491
render: OSD: center text vertically
Rewrite render_osd(), and instead of passing in an y-offset, let
render_osd() itself center the text inside the OSD buffer.

This is done using the same baseline calculation term_font_baseline()
does, except we use the buffer height instead of the line height.

Note that most OSDs are sized based on the line height...

Closes #1430
2023-07-31 16:48:49 +02:00
Daniel Eklöf
ddcbf2a7b4
config: remove deprecated option 'utempter' 2023-07-31 16:47:51 +02:00
Daniel Eklöf
0b4f1b4af2
main: translate command line options to overrides
Instead of special casing configuration affecting command line
options (like --font, --fullscreen, --maximized etc), translate them
to overrides, and let the configuration system handle them.

This also fixes an issue where -f,--font did not set csd.font, if
csd.font were otherwise unset.
2023-07-31 16:26:17 +02:00
Daniel Eklöf
33dcb4d49a
changelog: add new ‘unreleased section’ 2023-07-30 13:27:42 +02:00
Daniel Eklöf
8aa61ef45c
Merge branch 'releases/1.15' 2023-07-30 13:27:16 +02:00
Daniel Eklöf
53a5d62e5a
meson: bump version to 1.15.2 2023-07-30 13:18:55 +02:00
Daniel Eklöf
3111bc89e5
changelog: prepare for 1.15.2 2023-07-30 13:18:41 +02:00
Daniel Eklöf
89d0fe561f
Merge branch 'master' into releases/1.15 2023-07-30 13:17:31 +02:00
Daniel Eklöf
1af0277564
--window-size-chars: ensure width/height are valid for current scaling factor
Before this patch, we didn’t ensure width and height were valid for
the current scaling factor, when fractional scaling _is_
available. That is, we didn’t ensure the width/height values
multiplied back to their original values after dividing with the
scaling factor.

Closes #1446
2023-07-30 07:53:33 +02:00
Daniel Eklöf
05131a9b0c
Merge branch 'csd-fractional-scaling'
Closes #1441
2023-07-29 09:10:56 +02:00
Daniel Eklöf
aea687c0a1
changelog: CSDs with fractional scaling 2023-07-29 09:09:59 +02:00
Daniel Eklöf
764248bb0d
wayl_surface_scale_explicit_width_height(): don’t assert width/height are valid for scale
This function is only called directly when scaling the mouse
pointer. The mouse pointer is never guaranteed to have a valid width
and height, so skip the width/height assertions for it.
2023-07-29 08:18:00 +02:00
Daniel Eklöf
1782474481
fractional scaling: another round(!) of rounding fixes
* Ensure buffer sizes are valid. That is, ensure that
  size / scale * scale == size.
* Do size calculation of the window geometry in the same way we
  calculate the CSD offsets.
2023-07-28 16:03:13 +02:00
Daniel Eklöf
753c4b5d4f
render: round scaled border/title/button widths
And calculation of compounded offsets/widths/heights, to compensate
for compositor rounding when positioning and scaling/sizing
subsurfaces.

Closes #1441
2023-07-28 16:03:08 +02:00
Daniel Eklöf
9d75c55146
wayland: don't try to use a non-existing viewporter interface
When instantiating the viewport for a pointer surface, we didn't first
check if the compositor implements the viewporter interface.

This triggered a crash when a) foot was compiled with fractional
scaling, and b) the compositor did not implement the viewporter
interface.

Closes #1444
2023-07-28 15:42:28 +02:00
Daniel Eklöf
139fd6d55c
meson: add -Dterminfo-base-name option
This defines the base name of the generated terminfo files. It
defaults to the value of -Ddefault-terminfo (i.e. 'foot')

Example:

  meson -Ddefault-terminfo=foot-bananas -Dterminfo-base-name=foot-apples

The generated terminfo files will be

* terminfo/f/foot-apples
* terminfo/f/foot-apples-direct

The default value of $TERM will be 'foot-bananas'
2023-07-28 15:40:53 +02:00
Daniel Eklöf
f3c5b82c82
config: add tweak.bold-text-in-bright-amount
By how much to increase the luminance when brightening bold
fonts. This was previously hard-coded to a factor of 1.3, which is now
the default value of the new config option.

Closes #1434
2023-07-28 15:40:07 +02:00
Daniel Eklöf
e912656682
render: revert part of a36f67cbe3
render_osd() shouldn't use term_font_baseline().

This is because term_font_baseline() uses the line height to determine
the position, while render_osd() renders to surfaces that aren't sized
like the grid.

This fixes a regression, where the CSD title were sometimes rendered
too high up, and sometimes too low.
2023-07-28 15:37:48 +02:00
Daniel Eklöf
fd813d0e6c
font baseline: use max(font->height, font->ascent + font->descent) when calculating font height
This is how it's done when calculating the cell height, and we should
do the same thing when calculating the font baseline.
2023-07-28 15:36:48 +02:00
Daniel Eklöf
613c61abb4
scaling: always round the scaling factor when converting to int
* In all calls to wl_subsurface_set_position()
* (wp_viewport_set_destination() already does this)
* Whenever we use the scale to calculate margins (search box,
  scrollback indicator etc)
* Since the scaling factor is stored as a float (and not a double),
  use roundf() instead of round()
2023-07-25 16:48:50 +02:00
Daniel Eklöf
391bc119de
ci (sr.ht): alpine no longer allows pip installing to the system installation 2023-07-25 16:47:40 +02:00
Daniel Eklöf
76e471c4bc
ci: alpine no longer allows pip installing to the system installation 2023-07-25 16:45:29 +02:00
Daniel Eklöf
a36f67cbe3
render: apply new baseline calculation everywhere
* URL jump labels
* Scrollback position indicator
* Line/box drawings characters

Closes #1430
2023-07-25 15:53:29 +02:00
Daniel Eklöf
0a61cfc3be
wayland: update terminals (fonts etc) on xdg_output_handle_done()
Monitor DPI depends on information from both the wl_output and the
xdg_output interfaces.

Before this patch, terminals were only updated after changes to the
wl_output interfaces (thus depending on xdg output changes being
pushed by the compositor before wl_output changes).

That assumption (xdg_output happening before wl_output) isn’t always
true.

This patch fixes the issue by updating the terminals in the
xdg_output’s “done” event.

Closes #1431
2023-07-23 20:12:13 +02:00
Daniel Eklöf
57d8f74554
Merge branch 'invalid-utf8'
Closes #1423
2023-07-23 20:10:57 +02:00
Daniel Eklöf
8223b4b76c
changelog: ignore invalid UTF-8 in input 2023-07-22 11:23:22 +02:00
Daniel Eklöf
b59fd7c388
vt: detect and ignore invalid UTF-8 sequences
This patch detects invalid codepoints in the UTF-8 EDxxxx range, and
the F4xxxxxx range.

Note that we still allow the E0xxxx and F0xxxxxx ranges. These
contains overlong encodings. We allow them, because they still decode
into correct UTF-32.

Closes #1423
2023-07-22 11:21:41 +02:00
Daniel Eklöf
fc973a3bb9
selection: send_clipboard_or_primary(): handle selection text being NULL 2023-07-22 11:21:12 +02:00
Daniel Eklöf
15d7885c78
changelog: add new ‘unreleased’ section 2023-07-21 09:00:57 +02:00
Daniel Eklöf
d68d5faa05
Merge branch 'releases/1.15' 2023-07-21 09:00:39 +02:00
Daniel Eklöf
9e4d82a484
meson: bump version to 1.15.1 2023-07-21 08:57:03 +02:00
Daniel Eklöf
fa97df0eab
changelog: prepare for 1.15.1 2023-07-21 08:56:49 +02:00
Daniel Eklöf
62c6c9a78a
Merge branch 'master' into releases/1.15 2023-07-21 08:55:57 +02:00
Daniel Eklöf
b3255465f1
render: change baseline calculation, to center it within the line
Before this patch, fonts were anchored to the top of the line. With
this patch, it is instead centered.

Closes #1302
2023-07-21 08:17:32 +02:00
Daniel Eklöf
098f0aafd4
Merge branch 'systemd-units-socket-activation' 2023-07-21 08:13:51 +02:00
Max Gautier
478474d0ce
Changelog: standard system target + footclient fallback 2023-07-21 08:13:36 +02:00
Max Gautier
555edd60d4
Update documentation regarding systemd units 2023-07-21 08:12:55 +02:00
Max Gautier
d3ffb0bde1
Ties systemd units to graphical-session.target
- wayland-instance template target was a mistake.
  Systemd does not support simultaneous same user session, so stop
  trying to go against that.
- Only start systemd units in Wayland environments.
2023-07-21 08:12:55 +02:00
Max Gautier
c12db68363
footclient: fallback logic when socket paths don't exist
Even if WAYLAND_DISPLAY / XDG_RUNTIME_DIR are defined, if we can't
find the corresponding socket, we fallback to the path used when they
are not defined.
2023-07-21 08:12:49 +02:00