Age | Commit message (Collapse) | Author |
|
See [1].
[1]: https://github.com/swaywm/wlroots/pull/3106
|
|
References: https://github.com/swaywm/wlroots/pull/3205
|
|
|
|
This commit makes sure the extents are kept up-to-date, fixes not
damaging the surface if its layer shell-specific state didn't change,
and adds a check if the layer shell-specific state didn't change but the
surface got mapped/unmapped, which could affect keyboard focus.
|
|
This avoids infinite configure-ack_configure-commit loop.
|
|
|
|
|
|
This reverts commit 4dd46f06acc520449b980a5ea52be544cc5bfb6d, as the
logic is now handled by wlroots.
|
|
|
|
This can help debugging direct scan-out issues, such as [1].
[1]: https://github.com/swaywm/wlroots/issues/3185
|
|
while the draw itself is a no-op, alignment must still be accounted
this requires more signalling about the blocks (border_set; was the
border set?)
|
|
|
|
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.
|
|
|
|
|
|
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
|
|
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
|
|
|
|
When seatd is used, it isn't necessary to suid the sway binary.
|
|
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.
|
|
This avoids using the pango_ prefix, reserved for functions coming
from the Pango library.
|
|
gamja offers a better experience than Kiwi.
Obviously I'm 100% biased. Completely fine to not make the switch if someone feels differently.
|
|
|
|
Use `cairo_scale` to set the scale factor, removing redundant
multiplications by `output->scale`.
|
|
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.
|
|
Previously, the position was calculated incorrectly for nested
subsurfaces.
|
|
As in wlroots: [1]
[1]: https://github.com/swaywm/wlroots/pull/2953
|
|
|
|
|
|
|
|
The width of the texture needs to be calculated using the string that is
actually displayed in the texture.
|
|
|
|
|
|
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.
|
|
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.
|
|
Only works with DRM backend.
|
|
This commit updates Sway for swaywm/wlroots#2915.
|
|
`%l` is GNU specific. `%I` does the same thing but padded by zeros,
and is POSIX compliant.
|
|
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.
|
|
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.
|
|
Along with f4cda51 fixes #6217.
|
|
small typo fix (ptt => ppt)
|
|
Update for the wlroots breaking change in [1].
[1]: https://github.com/swaywm/wlroots/pull/3108
|
|
`[0]` is the switch type, not its state; we want `[1]` for that, and
it's a string not an int :)
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
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
|