| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
(cherry picked from commit 8363699f145fca844772643ceedcdaa7c6b90982)
|
|
This makes layer_shell more stable against the order of clients.
(cherry picked from commit ce6b2db0f2e9c71dda496d1aaaafcdcb9dade150)
|
|
switching workspace directly to urgent window creates timer which delays
reset of urgent state so user is able to notice it. make sure state
change is reflected visually as well (border change) by triggering
container update
Fixes: #8377
(cherry picked from commit db76fefd0c61d2c85f448eeb43ca3a97c10770a5)
|
|
The job of queue_output_config is now just to fill out a
wlr_output_state according to the output configuration, but it still has
a lot of logging from before we had wlr_output_state or the new modeset
logic, when queue_output_state instead touched the implicit pending
state of wlr_output.
Whatever debug logs it had would already be covered by the output state
debug logs or the command debug logs, so let's just remove it.
(cherry picked from commit a63027245a6805bb952e47c5751ecdd7d1063d2f)
|
|
Starting by setting some special initial output config values settings
was something sway used to do when the config was initially being
processed. This was later changed to always happen, as there shouldn't
be differences in how output config is calculated during config load and
after.
Most of these values are redundant, as they are either the zero value or
a value that would be selected if the unset (-1) value was found.
For output transforms, the automatic panel orientation code would only
trigger if the final output config has an unset transform, which the
initial values set in find_output_config made impossible.
Remove these initial values and instead use a fresh output config as is.
(cherry picked from commit 17ecb9eb1d355c677dc9cf772d372982b7b9541b)
|
|
(cherry picked from commit af0d4a048a38847769fda4898a07a72401ee40be)
|
|
queue_output_config had some remaining logic that would avoid setting
output states if they already appeared to be in effect. That is not what
most of the states did nor what is currently expected, so clean that up.
(cherry picked from commit 7e0c0dda42183cf3f6a64bace230252cbeadbbd6)
|
|
Include scale and subpixel in the output state log, and log the output
state on first commit attempt instead of just during fallback search.
(cherry picked from commit 7d93652105c370518f1e5856f8586b2297cab772)
|
|
|
|
Man sway(5) specifies that when tiling_drag is enable, the floating_mod
can be used to drag tiling, as well as floating containers. However the
current code indiscriminately assumes any button press to be intended
for moving the container, consequently causing an unintended call to
`seatop_move_tilting:handle_button` rather than
`seatop_default:handle_button` to pass
`state=WL_POINTER_BUTTON_STATE_RELEASED` to `get_active_mouse_binding`
My idea was to make 'Handle moving a tiling container' follow the same
path as 'Handle moving a floating container' because the initial call to
handle moving a floating correctly exits that branch and ends up passing
the RELEASED state to `get_active_mouse_binding`.
Fixes #8334
(cherry picked from commit 7f1cd0b73ba3290f8ee5f81fdf7f1ffa4c642ea7)
|
|
is shown
in pr https://github.com/swaywm/sway/pull/8196, when im_popup_surface is unmapped, author set the popup->relative to NULL, butt popup is still in popup groups, where assert the relative is not NULL, this cause the panic
Take the suggestion of Nefsen402, remove the line where set relative to
NULL, and add NULL check in scene_descriptor_destory
(cherry picked from commit f855b0898bf00285d5a7b840963b327230486632)
|
|
|
|
sway_root.outputs only include enabled outputs. We also need to re-init
the renderer for any disabled outputs, so use sway_root.all_outputs
instead.
Resolves the following heap-use-after-free accessing the render formats
when a disabled output is modeset after a GPU reset has occurred.
(cherry picked from commit c90cb37b2a0861548461daa9b75d75317e01b679)
|
|
(cherry picked from commit 9a9be01ad4130e4e19b437fd064f90982974971f)
|
|
Otherwise the GitHub release isn't attached to the Git tag.
(cherry picked from commit a2757e5f165eae445ae550fd1d13f9ec0db44efc)
|
|
|
|
(cherry picked from commit a0b3606f1725ee56e8dc15ae51ce62d042c0668a)
|
|
Currently, swaybar does not gracefully die if it detects
that the dbus connection was lost. Although it's not recommended
to restart dbus without restarting the compositor, it can very
easily happen. In the case it does, compositor's tray should
not consume 100% cpu until it has to be force killed.
apply suggestions
just setting the bar to not running will call teardown and unref the
dbus.
(cherry picked from commit 00e9a941523baa4afa1f9c077235aa7aa5e8aeab)
|
|
If a modeset timer exists at the time we apply an output manager config,
clear it to avoid a useless double commit.
(cherry picked from commit 63345977e2c411359a049c40cf2c1044a22b4f4a)
|
|
We batch modesets and input configuration performed during config reload
but commit for every command during the intial config load. There is no
need to perform commits during the initial config load as outputs have
not yet been created, but swaybg spawn should still be batched.
At the same time, replace direct calls to apply output configuration
with request_modeset to properly handle the modeset timer.
(cherry picked from commit cdff4f7c74b76e9141164b8c154621646140d8ec)
|
|
We remove the struct sway_server argument for consistency with the rest
of our internal APIs which rely on the global server instance.
(cherry picked from commit b73f54a966a30c2253818b89fefda16477531c14)
|
|
match i3 behaviour
(cherry picked from commit b6da218974d2e0508e7816f707fe0b1f1c97f0d6)
|
|
Checking if the config is not active or is reloading is just a
convoluted way of checking if the config is being read.
(cherry picked from commit 861dde100ab5536bea190b078c6c51adb6814be5)
|
|
Arranging lock surfaces rely on the sway_output width and height being
updated, but these are only updated after the commit has been completed
and all commit listeners have executed. This means that the lock
surfaces will not be appropriately scaled to match a change in output
dimensions, and may reveal what is under the lock background.
Replace the implicit arrange through the output commit listener with an
explicit arrange after the output configuration is finalized.
This might have regressed by other transition away from output commit
listeners for other arrange tasks, but even then it would have
erroneously relied on signalling order.
(cherry-picked from 785a459a55d8b55b4bed1fdc55b04c32be5b450c)
|
|
(cherry-picked from d7a76d381bbe4321578bc3a95fbc82d76b67ef05)
|
|
Instead of using a single finalized output config per output, accept a
regular list of output configs like the one ultimately stored for
configuration purposes. This allows the output management code to test
an augmented configuration while still using the same output config
logic, without having to mutate the stored configuration.
This in turn allows us to make a few APIs private. A bug note about an
existing issue with derade to off is added as well.
(cherry picked from 29b3f00e6fd99296cde7e94b7063acfd075c559c)
|
|
We always need to start out with the default configuration, regardless
of whether the config is reloading or not to ensure that config
decisions are stable given a specific configuration.
(cherry picked from 0496477f92e60d504c3938a54e823ad56c8b1868)
|
|
Simplify find_output_config and inline the search through the output
configs instead of using list_seq_find with a comparator function. The
new implementation will merge any amount of matched configs in order,
which will be relied upon in a future commit.
(cherry picked from a0c03499348a4a3d4d2e9a387bf366ccbcf68186)
|
|
Disabled outputs might not have a geometry to arrange for, so skip the
arrange to avoid messing up the workspace geometry.
(cherry picked from f4a6b0395f3fe38cb14bec1f5ac30445496e525c)
|
|
This is handled by apply_output_configs.
(cherry picked from 4f9ce4675cf428e8acd632de31482981e1bedcf8)
|
|
(cherry picked from 4fe054c6db74401f4afc7453fc74665097b5261d)
|
|
(cherry picked from 4fe054c6db74401f4afc7453fc74665097b5261d)
|
|
Output layout changes originate from the centralized modeset
infrastructure and request_state which already takes care of arranging
and updating outputs as needed.
(cherry picked from af28ac04a4d523aecd74dacc94a91f7d9e537982)
|
|
output_enable/output_disable are only called from modeset, and from
output destroy which requests modeset. As such, they can rely on the
modeset handling arrange.
(cherry picked from 6045ad9a0224ea2aab2d488cd356b5557007f5d1)
|
|
The reasoning for using a commit handler is to ensure that all paths for
output changes are correctly handled. With the centralized modeset
infrastructure in place, we can move the logic there. This allows us to
be smarter and avoid extraneous arranges, output manager updates and
transaction commits.
The side-effect is a minor duplication for the special-case
request_state, but the shared path will be relied upon further in future
commits to justify this duplication.
(cherry picked from commit b83e5aaa546792336ecc60d2e61708f3cd6b1f5d)
|
|
This seems to be the intention of input_popup_update in the first place:
handle the scenario where the focus moves.
(cherry picked from commit e9dd2182313e9a480e2b3d48162142414d1fee48)
|
|
The last implementation would ignore these and get it could get into
a bad state where it would start crashing sway.
(cherry picked from commit 74e507962e32ec8d6606d28383ac109fbf2370e4)
|
|
Input method popups in the future will destroy the scene descriptor when
it isn't mapped and therefore shouldn't be tampered with here.
(cherry picked from commit 023f6b0a50dd4fe17a29d7f02922e18ef37df857)
|
|
(cherry picked from commit 1537c9dae53eebea4926321aa9f7fd982375859f)
|
|
(cherry picked from commit 48069097ea55021afa0af3c5148cb7caab724dcf)
|
|
(cherry picked from commit 266cd4515a015b5684eaf6c0b48ce1afa9be2739)
|
|
(cherry picked from commit e940acd3749a5af08d5c404cae242c8693784ddc)
|
|
(cherry picked from commit 9765c29be11f04f903a45f34b9142a865784fc46)
|
|
GUD devices uses RGB565 by default for performance reasons. Allow
specifying render_bit_depth 6 to pick this format. The definition works
out if you consider the maximum number of bits per channel instead of
the average.
(cherry picked from commit 034d02f8a5099ad1283ce3bd1ced524a17f8ba2f)
|
|
Some display output hardware [1] doesn't support any of the current
formats, but works with ARGB8888. Fall back to it if available.
[1] https://github.com/torvalds/linux/blob/196145c606d0f816fd3926483cb1ff87e09c2c0b/drivers/gpu/drm/xlnx/zynqmp_disp.c#L313
Signed-off-by: Steffen Dirkwinkel <s.dirkwinkel@beckhoff.com>
(cherry picked from commit f957c7e658871c27935f88f6e1d18b9db67f3808)
|
|
(cherry picked from commit fb5eadc363a7f8b9eeeb0ba562ecb3c40e0e6e5a)
|
|
Previously, we incorrectly only set active keyboard for non-virtual
devices. 2498e694fb3aa99b3c863320d1bc936c334f241c incorrectly put
unrelated code in `sway_keyboard_set_layout`.
Fixes: 2498e694fb3aa99b3c863320d1bc936c334f241c
(cherry picked from commit c5ba7f23a50cd43d39fbb45274484abbcaa4e157)
|
|
If the output is not active, it might not have a valid geometry to
arrange for. Outputs do not gain a geometry until modeset, so if an
output is connected with a configuration present to disable it, it will
not have a geometry. If the output has a past workspace restored, this
will be attemtped arranged to fit a 0x0 rectangle, which asserts when
trying to sort out borders.
Consider the workspace activated only if the output itself is active to
get the scene nodes disabled.
(cherry picked from commit 14bff7b451d865f16e3fc82279dfba314b11269c)
|