| Age | Commit message (Collapse) | Author | Lines |
|
(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. 4c3c0602116c12c2821e1e505e7248b3c642b4ca incorrectly put
unrelated code in `sway_keyboard_set_layout`.
Fixes: 4c3c0602116c12c2821e1e505e7248b3c642b4ca
(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)
|
|
The else condition was missed here and we would never skip the % char
if it didn't end up matching with any property. Since we fail to skip
we would re-evaluate the % in an infinite loop never achieving any
forward-progress.
Fixes: https://github.com/swaywm/sway/issues/8333
(cherry picked from commit fc6b8d6af2a8b5c68bbf49753b0e560ad2cff208)
|
|
(cherry picked from commit be840f730e747a24106c8366ecb89e6b982cfa38)
|
|
(cherry picked from commit 980a4e02113789d0cca94aa023557c6f6e87ec73)
|
|
Its a little tought to notice that the COMMANDS section is actually 3 sections. Use markdown to make this easier to see for the user.
(cherry picked from commit f2b2a8114900060f667d7ddd55ef9f8a1e74c1b4)
|
|
This can cause issues such as the window not being shown at the exact
same coordinates when the old and new wlr_box aren't the same
dimensions and the container is being moved back-and-forth between them.
For example, in the case where a floating window gets moved
from one output to another but the outputs aren't the same resolution.
For e.g. have two displays that aren't the same resolution then:
1. Open a floating window and set it to pos 0,0 on output 2
2. Send it to scratchpad then `scratchpad show` on output 1
3. `scratchpad show` on output 2 again
Observe that the window isn't at 0,0 on output 2 anymore.
(cherry picked from commit 77b9ddabe2a97c5d04c30929b0f8cbde3470fdd7)
|
|
When moving a container to a new workspace, the workspace's dimension
are left unset. Usually this doesn't matter, but when moving a floating
container to a new workspace on a different output, this leads to the
position of the container being calculated with 0, so the container ends
up halfway offscreen on the leftmost topmost monitor.
Signed-off-by: Anna (navi) Figueiredo Gomes <navi@vlhl.dev>
(cherry picked from commit f00f964abf0eae36a1cce03c532115319499e570)
|
|
When doing an output configuration search, the intent is to only look
for modes if the output's configuration does not contain a specific
mode. This was done by testing if config_has_auto_mode returned false.
config_has_auto_mode had its return values backwards, leading to other
modes being tested if the output configuration had specified modes or
modelines, leading to unwanted modes being selected.
Invert the function to config_has_manual_mode to give it a clearer name,
and fix the return values in the process.
(cherry picked from commit f9c0f043e5ec39574c9d9b0fb3dece6169a0e67d)
|
|
After 4e38f93f367d ("config/output: Skip VRR tests when not supported"),
the configuration search no longer touches VRR state for outputs that
are known to not support it. This also means that it will not remove VRR
if already set, which could cause output configuration to fail.
Ensure that VRR state is never set for outputs that do not support it by
adding the same test for support to queue_output_config.
Fixes: 4e38f93f367d ("config/output: Skip VRR tests when not supported")
Fixes: https://github.com/swaywm/sway/issues/8296
(cherry picked from commit ae7c1b139a3c71d3e11fe2477d8b21c36de6770e)
|
|
(cherry picked from commit 6576b99c243e2b66d077db0a99ec9683747e3fe9)
|
|
This removes the last dependency bit on dmenu. No need for
"swaymsg exec" anymore: wmenu-run handles the xdg-activation
shenanigans.
(cherry picked from commit b44015578a3d53cdd9436850202d4405696c1f52)
|
|
(cherry picked from commit 9ba1beee580d07adfba903257ce8762b96ea3833)
|
|
Note that in the `sway_keyboard_configure` function of sway/input/keyboard.c,
we have skipped the `sway_keyboard_set_layout` function for virtual
keyboards, which then have null keymaps.
Hence, a null-safety check is needed at runtime.
(cherry picked from commit f344e9d5a5afe6ba1aeaf781be3bd18dbf8596f1)
|
|
Fixes: 9a1c411abd8261c121dcd50dfe54132718768084
(cherry picked from commit 32e5e5232d1b0b5a34b4296a79a4e8cfa32b5090)
|
|
(cherry picked from commit 3e956b922958b182912775497812cd42439b2955)
|
|
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3871
Adds option to allow tearing per output, as well as an option to force
enable or disable tearing for a specific application using a window
rule. Only works with fullscreen applications.
(cherry picked from commit 9a1c411abd8261c121dcd50dfe54132718768084)
|
|
Fixes: #8205
(cherry picked from commit b881c2e84c4be3c7b996f85200cfe391a7979267)
|
|
When attempting to use Git to populate commit/branch information in a
version string, it is possible through repository discovery that it
uses Git information not relevant to project. For example, if
repository content is extract into an interim build location when using
an embedded build framework (e.g. Buildroot), the project will not have
its Git repository to refer to. When it cannot find its repository, it
will look into its parent folders and may find the Git repository of
another project and use its branch/commit information.
This commit provides an explicit path to the project's Git repository
when consider commit/branch information. This will prevent any
repository discovery from occurring.
Signed-off-by: James Knight <james.d.knight@live.com>
(cherry picked from commit 6e4ccb99c3a2197468f8f34c290b7cd5612ff80b)
|
|
daaec72ac01f ("desktop/xwayland: restack surface upon activation")
has updated Sway for wlroots commit bfc69decdd04 ("xwm: do not
restack surfaces on activation"). However, it unconditionally
restacks the window above all other windows even if marking the
window as inactive.
Closes: https://github.com/swaywm/sway/issues/7974
(cherry picked from commit 7e74a4914261cf32c45017521960adf7ff6dac8f)
|
|
Commit 188811f80861 ("scene_graph: Port layer_shell") accidentally
removed code in `arrange_layers` to handle focus on layer shell
surfaces with keyboard interactivity.
Due to this, layer shell surfaces requesting exclusive keyboard
interactivity may not get automatically focused, and layer shell
surfaces giving up exclusive keyboard interactivity can remain focused.
Add the previous code back to fix the problem.
Note the non-rename change included in b4d7e84d3852 ("desktop: Rename
layers to shell_layers") is not included as it also seems accidental.
Fixes: #7936
(cherry picked from commit 4d4c88f0a73f6ee3da1c99355f04362ef2ad68c9)
|
|
1e0031781fc9 refactored repaint to accumulate all changes in a single
wlr_output_state and commit them at the end of the repaint loop,
replacing a call to wlr_scene_output_commit. wlr_scene_output_commit
contains an early bail-out when no frame has been requested and no
damage has accumulated, which was not replicated as part of this
refactor, causing the repaint loop to never pause.
Replicate the logic to stop the repaint loop as needed.
Fixes: 1e0031781fc9 ("desktop/output: unify page-flip codepath")
(cherry picked from commit 3f327b3db0c1fc6985c0ed3231e1bd6296584dad)
|
|
(cherry picked from commit 50073dc579fffffda8a4de903719b9bbb9d5ac3d)
|
|
|
|
Pango rounds glyph position and widths to nearest integer, which leads
to font dimensions jumping around when rendering with a scale, causing
text geometry to jump around when changing scale. This is disturbing
when text buffers change scale, and also mean that the text geometry
calculations in sway_text_node are incorrect.
Disable this rounding to make the geometry stable.
|
|
If the launched client decides to pass it's token along as an activation
request, allow that. This will make the behavior match tokens provided by
an external launcher client.
|
|
|
|
|
|
When a floating container has a titlebar, render_backing_buffer()
ends up being called each time the container is moved. Add some
more checks for no-op changes in sway_text_node_set_max_width()
and sway_text_node_set_background(). This makes the move smoother.
|
|
This function doesn't exist anymore.
|
|
the surface isn't initialized yet when we first handle it in
`handle_xdg_shell_toplevel`, move setting WM capabilities to
handle_commit instead.
Fixes warnings from wlroots about a configure being scheduled for
uninitialized surface
|
|
This fixes incorrect values for rect.y when using
`hide_edge_borders --i3`.
|
|
Regressed by scene graph.
|
|
Output changes often happen in rapid succession. Instead of doing the
modesets one by one, set a 10 millisecond debounce timer.
|