aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-02-22Move output commit out of output_render()Simon Ser
That way output_render() only does what it says on the tin.
2023-02-22Constify pixman_region32_t for rendering functionsSimon Ser
2023-02-22Adjust scale for fractional-scale-v1Simon Ser
2023-02-20Implement seatop_touchStacy Harper
Atm we got issue with the touch position sent to the clients. While holding contact, leaving the initial container will continue to send motion event to the client but with the new local position from the new container. This seatop goal is to send the position of the touch event, relatively to the initial container layout position.
2023-02-20layer-shell: enter output before surface is mappedSimon Ser
This sends fractional-scale-v1 events before the first configure event. That way clients have all of the metadata they need to render the first frame.
2023-02-20Update surface fractional scale on output changeSimon Ser
Closes: https://github.com/swaywm/sway/issues/7464
2023-02-19container: rehome the container_swap function into container.cRonan Pigott
This function was already declared in container.h but defined in commands/swap.c for some unknown reason. Everything in commands/ assumes the handler context has been set appropriately by the command preludes but this function snuck its way into seatop_* which doesn't set anything in the handler context. The fact that the seatop drag actions manipulate the focus without custody of the seat means they are definitely very broken in multiseat.
2023-02-18Fix map_to_output * turning off deviceDaniel Hill
Signed-off-by: Daniel Hill <daniel@gluo.nz>
2023-02-10Add support for fractional-scale-v1Simon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3511
2023-02-10Introduce surface_{enter,leave}_output()Simon Ser
We can centralize all output-related surface events from there.
2023-02-10Clarify documentation for window_rectŁukasz Adamczak
2023-02-10Correct window_rect.y with hide_edge_bordersŁukasz Adamczak
With `hide_edge_borders both` (or at least `vertical`), `window_rect.y` will equal `border_thickness` for SOME windows, but it will be 0 for windows adjacent to top screen edge. Therefore setting it to `border_thickness` is not sufficient. This commit changes it to the actual y offset of content into the container.
2023-02-09xdg-activation: fix urgency when the client does not specify a seatRonan Pigott
xdg-activation is now too strict in only allowing tokens with a seat to activate a surface. Clients may rely on this behavior for urgency hints. The seat argument is still useful in case the client does provide a seat so we can activate it on the desired seat. Fixes: 842609da6432 (view: make request_activate take a seat, 2022-11-30)
2023-02-07Use wlr_linux_dmabuf_feedback_v1_init_with_options()Simon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3933 Closes: https://github.com/swaywm/sway/issues/7436 Closes: https://github.com/swaywm/sway/pull/7437
2023-02-06ipc: add ability to subscribe to output eventBaltazár Radics
2023-02-05launcher: support external launcher tokensRonan Pigott
2023-02-05launcher: make launcher context seat awareRonan Pigott
2023-02-05view: make request_activate take a seatRonan Pigott
This way we can move focus on the same seat an activation token originates from.
2023-02-04ci: install hwdata-dev on AlpineSimon Ser
We're missing the pkg-config file so the DRM backend gets disabled.
2023-02-02swaymsg: s/inactive/disabled/Simon Ser
The JSON field is named "active", but that's confusing for users: `output disable` is the command which results in `active = false` outputs. Use the same terminology in end-user messages.
2023-02-02swaymsg: print output power statusSimon Ser
2023-02-02Add Norwegian READMRRadical
Added a Norwegian README file `README.no.md` and added a link to it in the original `README.md` file.
2023-02-02Convert to *_try_from_wlr_surface()Simon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/3991
2023-02-02root: free non_desktop_outputs list on root_destroyTobias Predel
This fixes a memory leak because the non_desktop_outputs list was not freed when the root was destroyed.
2023-02-01Convert to wlr_xwayland_surface_try_from_wlr_surface()Simon Ser
Accomodate for the breaking changes in [1]. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/fbf5982e3838ee28b5345e98832f6956c402b225
2023-02-01ipc: add support for output eventSimon Ser
For compatibility with i3 [1]. [1]: https://i3wm.org/docs/ipc.html#_output_event
2023-02-01Added reference for event types to swaymsg manpageCedric Sodhi
2023-01-30Switch default menu to wmenuSimon Ser
Switch the default menu to wmeny (https://sr.ht/~adnano/wmenu), a Wayland-native alternative to dmenu. This removes the dependency on Xwayland for the default config. wmenu is small (same scope as dmenu) and has the same flags as dmenu. One downside is that it's not widely packaged by distributions yet. We still depend on dmenu_path.
2023-01-23Apply new adaptive sync value from wlr-output-managementAlexander Courtis
fixes #7394 Test cases: * zwlr_output_configuration_head_v1_set_adaptive_sync 0->0, no change * 0->1, enabled * 1->0, disabled * 1->1, no change Similar tests with an incapable display resulted in `"Adaptive sync failed, ignoring"` messages as expected.
2023-01-21Check return value of wlr_renderer_begin()Simon Ser
Since [1], wlr_renderer_begin() can fail. Check its return value and bail. This fixes an assertion error (when begin() fails and then we try to render something) after a GPU reset. [1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/commit/a541c9510a4cf544313bc9b0503d75820b42444e
2023-01-20focus_on_window_activation: raise if floatingTobias Bengfort
2023-01-18Fix pointer events for ext-session-lock surfacesSimon Ser
We were never sending any pointer event to ext-session-lock surfaces.
2023-01-18Fix indentation in surface_is_xdg_popup()Simon Ser
2023-01-18Send wl_surface.enter for ext-session-lock surfacesSimon Ser
2023-01-16input/tablet: handle focusing NULL surfaceKirill Primak
Additionally, rename the function responsible for switching focus to match its behavior better.
2023-01-16swaynag: call swaynag_destroy on clean exitManuel Stoeckl
And fix the fallout of the swaynag_destroy having evolved without being tested: * wl_display_disconnect was called too early * `button_close` and `swaynag.details.button_details` needed to be heap allocated, since they are added to swaynag.buttons, and all entries of swaynag.buttons are freed in swaynag_destroy * To keep things simpler, disconnect the lifetime of the 'Toggle details' button text config setting from the button itself.
2023-01-11input: enable user xkb configs with cap_sys_niceRonan Pigott
2023-01-07Improve tablet tool button handling.John Chadwick
This change allows the tablet tool button to be used for floating mod resize. In addition, it attempts to ensure that tablet tool events are consistent such that tablet v2 events and pointer events will never be interleaved, and such that the tool buttons count will never fall out of sync and cause tool button emulation to break. Some of this logic is similar to what is done for tablet tool tip, but not quite identical, because of the complication that we have to deal with multiple inputs that can overlap eachother. Fixes #7036.
2023-01-04warp_to_constraint_cursor_hint: Handle NULL viewAlexander Orzechowski
This might be the wrong fix, but the crash is happening because the ->data field on an xwayland surface is NULL. A NULL data field is normal for unmanaged surfaces, however it seems clients can do weird things: They can create a cursor lock on a regular xwayland surface then make it unmanaged by calling override_redirect. In this case, the xwayland server should destroy the cursor lock, which is does, but does so in the wrong order making it try to dereference a NULL pointer after sway has acknowledged its new unmanaged status. ``` (gdb) bt full 0 0x000055fd91934861 in warp_to_constraint_cursor_hint (cursor=0x55fd93486c00) at ../sway/input/cursor.c:1243 sy = 605 lx = 6.9527431433545762e-310 sx = 1272 view = 0x0 con = 0x7ffd1cdfe400 ly = -6.949595189996421e+59 constraint = 0x55fd93e7faa0 1 0x000055fd91934976 in handle_constraint_destroy (listener=0x55fd93f0fd58, data=0x55fd93e7faa0) at ../sway/input/cursor.c:1266 sway_constraint = 0x55fd93f0fd30 constraint = 0x55fd93e7faa0 cursor = 0x55fd93486c00 2 0x00007fda8275bf6e in wl_signal_emit_mutable () at /usr/lib/libwayland-server.so.0 3 0x00007fda82e57016 in pointer_constraint_destroy (constraint=0x55fd93e7faa0) at ../subprojects/wlroots/types/wlr_pointer_constraints_v1.c:49 4 0x00007fda82e570dc in pointer_constraint_destroy_resource (resource=0x55fd933cf8f0) at ../subprojects/wlroots/types/wlr_pointer_constraints_v1.c:66 constraint = 0x55fd93e7faa0 5 0x00007fda8275d8ba in () at /usr/lib/libwayland-server.so.0 6 0x00007fda8275f6a9 in wl_resource_destroy () at /usr/lib/libwayland-server.so.0 7 0x00007fda82e56fb3 in resource_destroy (client=0x55fd93ea52e0, resource=0x55fd933cf8f0) at ../subprojects/wlroots/types/wlr_pointer_constraints_v1.c:39 8 0x00007fda81d8f4f6 in () at /usr/lib/libffi.so.8 9 0x00007fda81d8bf5e in () at /usr/lib/libffi.so.8 10 0x00007fda81d8eb73 in ffi_call () at /usr/lib/libffi.so.8 11 0x00007fda8275aada in () at /usr/lib/libwayland-server.so.0 12 0x00007fda8275f01c in () at /usr/lib/libwayland-server.so.0 13 0x00007fda8275d9e2 in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0 14 0x00007fda8275e197 in wl_display_run () at /usr/lib/libwayland-server.so.0 15 0x000055fd919264d3 in server_run (server=0x55fd919a3a80 <server>) at ../sway/server.c:320 16 0x000055fd91925457 in main (argc=1, argv=0x7ffd1cdfed98) at ../sway/main.c:411 verbose = false debug = false validate = false allow_unsupported_gpu = false config_path = 0x0 c = -1 ```
2023-01-03Use correct length for strncmp comparisonCarl Smedstad
2023-01-03Replace math functions that promote float to doubleCarl Smedstad
2023-01-03Remove redundant return statementsCarl Smedstad
2023-01-03Make cmd_handler.command constCarl Smedstad
2023-01-03Add missing includes & remove duplicatesCarl Smedstad
2023-01-03Remove duplicate declarationsCarl Smedstad
2023-01-03tree/container: drop unnecessary check in container_get_siblings()Simon Ser
The check for container->pending.workspace already covers this. References: https://github.com/swaywm/sway/pull/7315#issuecomment-1341716204
2023-01-03man: fix typo in output disable docsSimon Ser
2022-12-22swaynag: drop swaynag_type.fontSimon Ser
It's too easy to have this go out of sync with font_description.
2022-12-22swaynag: fix NULL font descriptionSimon Ser
The font description was only set if provided on the CLI. It was left NULL for the defaults and when reading from the config file. Closes: https://github.com/swaywm/sway/issues/7186
2022-12-19seat: Set keyboard if seat keyboard is NULLKenny Levinsen
sway sends wl_keyboard.enter on seat focus change and when a keyboard active on a seat is configured. If all keyboards are removed and a keyboard is added back without changing the focused client, no new notify event would be sent despite having keyboard focus. This could lead to key events without notify, which is a protocol violation. As a quick fix, when configuring a keyboard on a seat where no keyboard is currently active, activate the keyboard so that a focused surface will receive a notify event. Regressed by: e1b268af98edeb09e570e8855ef64f0719cbafe2 Closes: https://github.com/swaywm/sway/issues/7330