Commit graph

6824 commits

Author SHA1 Message Date
Hugo Osvaldo Barrera
c16b2a26ed Avoid unecessary font metric calculations
Prior to 62d90a8e, titlebar's font height (and other related values)
would change any time any titlebar's content changed, so these values
were recalculated each time any titlebar's content changed (or a new
titlebar was created).

However, since the above was merge, these values no longer change so
often and we only need to recalculate them when the configured font
changes (and stop calling `config_update_font_height` each time
titlebars are rendered).

This commit removes all the unecessary calls to this function and avoids
all those unecessary calculations. Whenever the font strays from the
default value, the `font` command is called, and it calls
`config_update_font_height`, which is enough to keep the value always up
to date.

I've also added a default value to the `font_baseline` config, since
otherwise that's zero for setups that don't explicitly specify a font.
2021-09-20 09:25:47 +02:00
aajonusonline
49da73d4ac sway-ipc.7.scd: fix typo 2021-09-19 17:28:37 +02:00
Christian Llupo
f1f283dd77 README: Added Greek translation 2021-09-19 14:14:42 +02:00
Nathan Schulte
8d0a84f3c7 swaybar: properly draw urgent block right border
introduced via #3287 -- https://github.com/swaywm/sway/pull/3287/files#diff-a1e918ce0bc71f4f7934767541319e724a51a34a5418ecdc286065e50921eda4L239
uncovered via #3394 -- https://github.com/swaywm/sway/pull/3394/files#diff-a1e918ce0bc71f4f7934767541319e724a51a34a5418ecdc286065e50921eda4R258
2021-09-15 09:26:08 +02:00
Simon Ser
9727db67cf build: remove scdoc stdin/stdout hack
Since [1], Meson allows feeding the input file as stdin and
capturing stout to the output file. We don't need the sh hack
anymore.

[1]: https://github.com/mesonbuild/meson/pull/8923
2021-09-15 08:21:20 +02:00
Kenny Levinsen
94e041b5f6 readme: Align Danish translation with main README 2021-09-13 17:05:28 +02:00
Simon Ser
1b86008721 readme: mention seatd
When seatd is used, it isn't necessary to suid the sway binary.
2021-09-13 16:10:05 +02:00
xdavidwu
806b59eca3 swaynag: fix pointer button events on scaled outputs
sway#6504 simplified rendering code by setting scaling at cairo, but
that also changed button position records into ones without scale
multiplication, breaking button events. This fixes it by not multiplying
scale on events handling as well.
2021-09-13 14:46:01 +02:00
Simon Ser
3f7a04df22 Rename pango_printf to render_text
This avoids using the pango_ prefix, reserved for functions coming
from the Pango library.
2021-09-13 14:22:51 +02:00
Simon Ser
671bb448a1 readme: link to gamja for IRC
gamja offers a better experience than Kiwi.

Obviously I'm 100% biased. Completely fine to not make the switch if someone feels differently.
2021-09-13 10:58:45 +02:00
Simon Ser
d0cb52db64 readme: switch to Libera Chat for ir 2021-09-13 08:29:12 +02:00
Caduser2020
57ae751655 Simplify swaybar/swaynag scaling code
Use `cairo_scale` to set the scale factor, removing redundant
multiplications by `output->scale`.
2021-09-12 09:05:12 +02:00
Simon Zeni
30c28ff8f7 introduce wlr_drm_lease_v1
This prevents sway from extending the desktop to i.e. VR headsets, and makes
them available for DRM leasing.

Non-desktop wlr_outputs will be offered through the wlr_drm_lease_v1_manager
interface for client to lease.
2021-09-09 15:25:19 +02:00
Kirill Primak
e76e13ef85 view: fix child position calc
Previously, the position was calculated incorrectly for nested
subsurfaces.
2021-09-08 09:36:17 +02:00
lbonn
adf9e16c88 build: subproject support for wayland-protocols
As in wlroots: [1]

[1]: https://github.com/swaywm/wlroots/pull/2953
2021-09-08 08:19:40 +02:00
Kirill Primak
91d6d00414 render: fix -Ddamage=rerender 2021-09-07 14:52:29 +02:00
Kirill Primak
ae80bdedf9 surface: chase wlr subsurface list/link change 2021-09-06 17:39:28 +02:00
Kirill Primak
72b0491ca0 view: fix saved buffer order 2021-09-05 12:31:46 +02:00
Daniel De Graaf
69a7b9215e Fix overly-wide mark textures
The width of the texture needs to be calculated using the string that is
actually displayed in the texture.
2021-09-04 17:23:06 +02:00
Ronan Pigott
00b10a93f1 commands: update split none command for a047b5ee4 2021-09-04 00:24:47 +02:00
Ronan Pigott
de3c290427 command: implement split none 2021-09-03 23:50:20 +02:00
Simon Plakolb
4baf845a3a seatop_down: End if surface is destroyed or other seatop starts
If the surface the pointer started to interact with is destroyed we also
want the seatop_down to end. In case a drag is initiated we receive a
call to handle_end.
2021-09-02 13:13:40 -04:00
Simon Plakolb
9e58425cb3 input: Use seatop_down on layer surface click
This solves an issue where layer-shell items would not receive a button
release event when the pointer left them while being pressed. The
default seatop changes focus immediately while seatop_down defers any
focus changes until the pointer is released or seatop_down is destroyed.
2021-09-02 13:13:40 -04:00
David Rosca
57d6f6f19e Add output modeline command
Only works with DRM backend.
2021-08-31 17:29:40 +02:00
Tudor Brindus
daaec72ac0 desktop/xwayland: restack surface upon activation
This commit updates Sway for swaywm/wlroots#2915.
2021-08-28 22:04:31 +02:00
Nihal Jere
1ea5f015f5 config.in: use portable hour specifier
`%l` is GNU specific. `%I` does the same thing but padded by zeros,
and is POSIX compliant.
2021-08-27 19:28:56 +02:00
Hugo Osvaldo Barrera
9acb015755 Deduplicate code for rendering titlebar texts
The title itself and marks were being rendered by two very-similar yet
different functions, and any changes made to one had to be reflected on
the other.

This mostly prevents such oversights from happening, and keeps makes
sure we keep both consistent.
2021-08-27 10:12:57 +02:00
Hugo Osvaldo Barrera
62d90a8e95 Use fixed titlebar heights
Use fixed titlebar heights. The default height is calculated based on
font metrics for the configured font and current locale.

Some testing with titles with emoji and CJK characters (which are
substantially higher in my setup) shows that the titlebars retain their
initial value, text does shift up or down, and all titlebars always
remain aligned.

Also drop some also now-unecessary title_height calculations.

Makes also needed to be updated, since they should be positioned with
the same rules.
2021-08-26 20:16:14 +02:00
grumpey
bb3fd0abc5 Update Pango font description URL in sway.5.scd
Along with f4cda51 fixes #6217.
2021-08-19 18:06:29 +02:00
quinno
d0c5c5a60b Fix typo in sway.5.scd
small typo fix (ptt => ppt)
2021-08-16 14:05:48 +02:00
Simon Ser
c9060bcc12 layer-shell: replace close() with destroy()
Update for the wlroots breaking change in [1].

[1]: https://github.com/swaywm/wlroots/pull/3108
2021-08-14 20:29:59 +02:00
Eric Engestrom
b17cf58a4d cmd_bind_or_unbind_switch: fix copy/paste typo error message
`[0]` is the switch type, not its state; we want `[1]` for that, and
it's a string not an int :)
2021-08-14 10:46:17 +02:00
Simon Ser
4cdc4ac63a Fallback to other output modes if preferred mode fails
Sometimes the preferred mode is not available due to hardware
constraints (e.g. GPU or cable bandwidth limitations). In these
cases it's better to fallback to lower modes than to end up with
a black screen.
2021-08-12 21:06:26 +02:00
Ronan Pigott
f67ed6772c layer_shell: damage previous area when a surface shrinks
When a layer surface shrinks we need to damage the area it previously
occupied, but we don't know the location of all its subsurfaces in the
previous state, so instead damage a rectangle that encloses the entire
previous extent.
2021-08-12 10:05:12 +02:00
Dudemanguy
acf946fe4c xdg-decoration: let floating clients set borders
The xdg-decoration protocol allows clients to request whether they want
to use server side decorations or client side decorations. Currently,
sway ignores this and always enforces whatever the server is currently
set to. Although tiled clients cannot be allowed to set borders, there
is no harm in listening requests from floating clients. Sidenote: also
fix an unrelated style error.
2021-08-12 10:02:17 +02:00
Simon Ser
7a15e715b7 Document view_map 2021-08-12 00:15:04 +02:00
mzeinali
b345d6e5d2 Add persian README file 2021-08-10 15:55:57 +02:00
David Rosca
d0fe721fbb seatop_down: Change type of sx, sy to double in begin_seatop_down
Losing the precision resulted in wlr_cursor and wlr_seat::pointer_state
getting out of sync during pointer motion in seatop_down.
Since the difference was always under 1 px, it was practically
impossible to notice in normal use.

But because of being out of sync, cursor_rebase would always end up
incorrectly calling wlr_seat_pointer_notify_motion from
seatop_default_begin (on releasing mouse button) which broke cursor
locking.

See #5405
Closes #4632
2021-08-05 09:26:11 -04:00
frogtile
f4cda5157e
man: update Pango font description URL
The old URL gives a 404.
2021-08-04 02:15:04 +02:00
Simon Zeni
6ffa4b1f70 view: remove reference to wlr_wl_shell_surface 2021-07-27 17:31:29 +02:00
Simon Ser
daf9ad1af7 swaybar: log Wayland display errors 2021-07-26 16:58:28 +02:00
Simon Ser
a71bbdd322 swaybar: exit cleanly when disconnected from IPC 2021-07-26 16:58:28 +02:00
Simon Ser
2e03a61262 Fix wl_pointer.frame not sent on touch emulation
When emulating touch, the simulating_pointer_from_touch field is
set to true. It's switched back to false when a touch_up event is
received. However we need to ensure we always send a wl_pointer.frame
event following a group of other wl_pointer events.

Since a touch_frame event is always guaranteed to come after a group
of touch events, unset simulating_pointer_from_touch in the touch_frame
handler instead of the touch_up handler. Add a new field to know whether
the touch_frame handler should stop emulation.
2021-07-26 16:58:11 +02:00
Tobias Stoeckmann
e7f4e50da0 Fix crash when starting without HOME
If HOME environment variable is not set, sway fails startup with a
segmentation fault due to null pointer dereference.

Also check calloc return value and only perform the fallback code when
really needed.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
2021-07-23 20:05:16 +02:00
bR3iN
c9458b9fb1 Add gaps <type> <scope> toggle <px> command
Add a subcommand for `gaps` that allows to toggle gaps at
runtime. This functionality is part of i3-gaps since [1]
but is missing in sway.

[1] https://github.com/Airblader/i3/pull/264
2021-07-22 10:12:33 +02:00
Dylan Araps
2024725cc0 Add meson options to enable/disable swaybar and swaynag 2021-07-21 18:24:09 +02:00
Hugo Osvaldo Barrera
96102184ab grimshot: Exit 1 on cancellation
Whenever the selection is cancelled by the user, exit 1, since not
screenshot has been taken.
2021-07-10 13:03:42 +02:00
Simon Ser
7114030159 Add support for touch frame events
Update for the breaking change in [1].

[1]: https://github.com/swaywm/wlroots/pull/3001
2021-07-08 09:18:20 +02:00
Simon Ser
4832fc937f Update wlr_box includes
Update for the breaking change in [1].

[1]: https://github.com/swaywm/wlroots/pull/3011
2021-07-07 11:29:14 +02:00
Dudemanguy
c41dc33590 container: ignore borders in fullscreen windows
When setting the geometry from content for floating windows, the
coordinates for borders are normally taken into account. However in the
case of a floating fullscreen window, we should not be doing this. Since
the content of the container takes the space of the entire output, this
causes the calculated borders to neccesarily be outside of the output.
This later causes a problem when sending surface entrance events since
in a multi-monitor setup, the border coordinates will overlap with
another output despite the surface not actually being on that output at
all. The fix is to just ignore border coordinates for a floating
fullscreen container since fullscreen, of course, does not actually have
any borders. Fixes #6080.
2021-07-06 22:54:24 +02:00