| Age | Commit message (Collapse) | Author | Lines |
|
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>
|
|
|
|
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.
|
|
After 622be4526a93 ("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: 622be4526a93 ("config/output: Skip VRR tests when not supported")
Fixes: https://github.com/swaywm/sway/issues/8296
|
|
|
|
|
|
|
|
|
|
This removes the last dependency bit on dmenu. No need for
"swaymsg exec" anymore: wmenu-run handles the xdg-activation
shenanigans.
|
|
|
|
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.
|
|
|
|
Fixes: 37d3937789deb322d2d4de7a13ace3202520026a
|
|
|
|
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4262
|
|
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.
|
|
Fixes: #8205
|
|
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>
|
|
See
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4670.
|
|
0afc041a7bbe ("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
|
|
Commit f2f4af868bfa ("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 3e58196b0a07 ("desktop: Rename
layers to shell_layers") is not included as it also seems accidental.
Fixes: #7936
|
|
4d52204b308b 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: 4d52204b308b ("desktop/output: unify page-flip codepath")
|
|
Meson has introduced a relative_to() function [1] in its fs module
since version 1.3.
[1]: https://mesonbuild.com/Fs-module.html#relative_to
|
|
|
|
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/2434
|
|
|
|
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.
|
|
This prevents us from recompiling keymap every time a virtual device is
created by clients like fcitx5
|
|
|
|
Fixes: #8143 #8173
Upstream issue: https://github.com/fcitx/fcitx5/issues/1044
|
|
"The compositor must not send this event if the wl_keyboard did not
have an active surface immediately before this event. The compositor
must not send this event if state is pressed (resp. released) and the
key was already logically down (resp. was not logically down)
immediately before this event."
From https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/382
|
|
Adaptive sync is a "soft" setting which we degrade of off when not
supported. Some outputs types do not support turning it off (Wayland,
X11), which makes for an awkward three-way test where we first enable,
disable and finally unset the setting.
wlr_output.adaptive_sync_supported tells us whether the output
definitely does not support making changes (backend without support,
connector without the feature), or whether it might work.
Use this to avoid wasting time on adaptive sync test that can never
succeed, and to avoid the Wayland/X11-backend specific unset step.
|
|
Instead of having a special codepath for applying gamma LUTs, have
a single codepath for regular page-flips and gamma LUT updates.
Should make it easier to add more logic on top e.g. for tearing
page-flips.
|
|
|
|
|
|
|
|
|
|
The size computations may result in a zero or negative size, which
are not valid wl_surface sizes.
|
|
It's not possible to have a surface with a smaller size.
|
|
We were only passing the color transform when calling
wlr_scene_output_commit(). However when modesetting or pushing a
new gamma LUT we render via wlr_scene_output_build_state(). Pass
the color transform there as well.
|
|
This makes it possible to render output buffers in a different color
space, by specifying an ICC profile for the output.
|