| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The original sway output config implementation enabled one output at a
time, testing modes, render formats and VRR support as it went along.
While this sort of fallback is easy to do, it has the downside of not
considering the effect of neighbor outputs on the configuration
viability.
With backend-wide commits, we can now better consider the effect of
neighbor outputs, but to handle the fact that we commit all outputs at
once we need to perform a more elaborate search of viable
configurations.
Implement a recursive configuration search for when the primary
configuration failed to apply.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Output configuration can be applied to a particular output in three
ways: As a wildcard, by connector name and by identifier. This in turn
means that three different configurations must be handled at any given
time.
In the current model, this is managed by merging new configuration into
every other matching configuration. At the same time, an additional
synthetic configuration is made which matchehes both identifier and name
at the same time, further complicating logic.
Instead, manage and store each configuration independently and merge
them in order when retrieving configuration for an output. When changes
are made to a less specific configuration, clear these fields from more
specific configurations to allow the change to take effect regardless of
precedence.
Fixes: https://github.com/swaywm/sway/issues/8048
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
apply_output_config_to_outputs uses the specified output config to check
which outputs to apply to, and to use as backup when no config is found.
If any config matches the output, the specified config will be
disregarded.
The only remaining user of apply_output_config_to_outputs is
reset_outputs, which called apply_output_config_to_outputs with either
the first stored wildcard config, or a new empty wildcard config.
Providing a stored or empty wildcard config is practically the same as
calling `apply_all_output_configs`. Replace uses of `reset_outputs` with
`apply_all_output_configs` and remove the now unused functions.
|
| |
|
|
|
|
|
|
| |
Apply all output configs as they are. This differs from
apply_output_config_to_outputs, which tries to apply a specific output
config.
|
|
|
|
|
|
|
| |
Introduce apply_output_configs, which applies the specified matched
output configs as a single backend commit.
Reimplement apply_output_config_to_outputs using apply_output_configs.
|
| |
|
| |
|
|
|
|
|
| |
This was useful when wlroots backends were updating the current
mode on their own. This is no longer the case.
|
| |
|
|
|
|
| |
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4575
|
|
|
| |
Co-authored-by: tadeokondrak <me@tadeo.ca>
|
|
|
|
|
|
|
|
|
| |
Check if the app that requested a token has provided a valid input
serial and a focused surface. Downgrade activation request to urgency
otherwise.
This is mostly in line with what other Wayland compositors decided to
do, and offers a better security than the original logic.
|
|
|
|
|
| |
This is a more suitable place to track the requesting seat, since we are
able to respond appropriately to destroy notifications.
|
| |
|
|
|
|
|
|
|
| |
The header is not installed by wlroots when the DRM backend is
disabled. We don't need it here, so don't include it.
Closes: https://github.com/swaywm/sway/issues/7943
|
|
|
|
| |
It's not used and causes a crash when a view is destroyed.
|
|
|
|
|
|
|
|
| |
We tried to synchronize layer shell popups with the parent layer shell
on commits, but this is subtly wrong because we would only update
the position for one layer shell that was committed, but not any other
layer that might be affected. By moving handling to the scene descriptor
we can iterate all popups and ensure they are synchronized.
|
| |
|
| |
|
|
|
|
| |
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4543
|
|
|
|
|
|
|
|
|
|
| |
7e69a7076fc8 ("Drop wl_drm") has dropped wl_drm, however a lot of
software wasn't quite ready for this (Xwayland, libva, amdvlk).
Keep wl_drm disabled by default to pressure the wl_drm phase-out,
but add a -Dlegacy-wl-drm flag for users to restore the previous
behavior in the meantime.
References: https://github.com/swaywm/sway/issues/7897
|
| |
|
|
|
|
|
| |
Now that we use wlr_scene, wlroots handles these. If available use
the wlroots debug options instead.
|
| |
|
|
|
|
| |
The scene graph abstraction does this for us
|
|
|
|
| |
The new scene graph abstraction handles this for us.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is a helper on top of a wlr_scene_buffer that will handle text
rendering for us.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Across a wayland compositor, there are multiple shells: It can be
a toplevel, or a layer_shell, or even something more meta like a drag
icon or highlight indicators when dragging windows around.
This object lets us store values that represent these modes of operation
and keep track of what object is being represented.
|
| |
|
| |
|
|
|
|
|
| |
This code will be deleted later, but for the time being rename
it so it doesn't conflict with future properties.
|
|
|
|
| |
Closes: https://github.com/swaywm/sway/issues/7890
|
|
|
| |
It is no longer in use.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since output layout is destroyed when the wayland display is destroyed
we run into a destroy listener order problem: Either the display starts
destroying the outputs first, in which case we're good: The existing
handling will clean up. However, things go wrong if the display decides
to destroy the output layout first. In this case, sway will hold
invalid references to the output layout as part of each output so that
when it finally goes to destroy them, sway will dereference destroyed
output layout bits.
Ref: https://github.com/swaywm/sway/pull/6844#issuecomment-1843599513
|
| |
|