aboutsummaryrefslogtreecommitdiff
path: root/sway/desktop
AgeCommit message (Collapse)Author
2024-02-23Define _POSIX_C_SOURCE globallySimon Ser
See discussion in https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4555
2024-02-20text_input: Implement input-method popupsAccess
Co-authored-by: tadeokondrak <me@tadeo.ca>
2024-02-17xdg-activation: distinguish activation and urgency requestsAleksei Bavshin
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.
2024-02-17launcher: track the seat in the launcher ctxRonan Pigott
This is a more suitable place to track the requesting seat, since we are able to respond appropriately to destroy notifications.
2024-02-15Drop unnecessary includes from sway/server.hSimon Ser
2024-02-12layer_shell: Handle popups through popup descriptorAlexander Orzechowski
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.
2024-02-12xdg_shell: Extract struct for popup descriptorAlexander Orzechowski
2024-02-12layer_shell: Arrange popups even if exclusive zone doesn't changeAlexander Orzechowski
2024-02-12ext-foreign-toplevel-list: Implement protocolMerlin Lex
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4543
2024-01-21layer_shell: Fix typo of return instead of continueAlexander Orzechowski
Otherwise we would skip arranging the rest of the surfaces if one of them isn't initialized.
2024-01-21Fix SIGSEGV on output destroyDaniel De Graaf
``` Program terminated with signal SIGSEGV, Segmentation fault. 144 struct wlr_layer_surface_v1 *layer_surface = surface->layer_surface; [Current thread is 1 (Thread 0x7f1f7c5b3ac0 (LWP 2473))] (gdb) bt ``` Add a NULL check in `find_mapped_layer_by_client` like the one in `arrange_surface`.
2024-01-18scene_graph: port wlr_forgein_toplevel_management output enter/leave eventsAlexander Orzechowski
2024-01-18scene_graph: Implement toplevel clippingAlexander Orzechowski
2024-01-18scene_graph: Port opacity and filter modesAlexander Orzechowski
2024-01-18scene_graph: Arrange scene graph on transaction applyAlexander Orzechowski
2024-01-18container: Don't track outputsAlexander Orzechowski
The scene graph abstraction does this for us
2024-01-18Delete old damage tracking codeAlexander Orzechowski
The new scene graph abstraction handles this for us.
2024-01-18scene_graph: Port view saved buffersAlexander Orzechowski
2024-01-18xwayland: Cleanup geometry handling on commitAlexander Orzechowski
Instead of doing this roundabout thing where we get the surface from the view, let's instead get it from the `wlr_surface_state` that we already track in `handle_commit`. This makes the NULL state impossible which is what the old `get_geometry` is checking for and generally cleans things up a little bit. Also don't check if the geometry x/y changed, those will always be 0 for xwayland.
2024-01-18scene_graph: Port xwaylandAlexander Orzechowski
2024-01-18scene_graph: Port xdg_shellAlexander Orzechowski
2024-01-18transaction: ready signals will return success boolsAlexander Orzechowski
2024-01-18scene_graph: Port layer_shellAlexander Orzechowski
2024-01-18renderer: Remove in favor of scene_graphAlexander Orzechowski
2024-01-18seat: Remove dead seatop_render functionAlexander Orzechowski
2024-01-18scene_graph: Port ext_session_v1Alexander Orzechowski
2024-01-18scene_graph: Port seat drag iconsAlexander Orzechowski
2024-01-18renderer: Render scene_graphAlexander Orzechowski
2024-01-18scene_graph: Maintain `wlr_scene_node`s for the sway tree.Alexander Orzechowski
2024-01-18view: init function should return a success boolAlexander Orzechowski
2024-01-18desktop: Rename layers to shell_layersAlexander Orzechowski
This code will be deleted later, but for the time being rename it so it doesn't conflict with future properties.
2024-01-17layer-shell: don't configure uninitialized surfacesKirill Primak
2024-01-17layer-shell: wait for an initial commit before configuringKirill Primak
2024-01-17layer-shell: don't try to unmap on destroyKirill Primak
A surface is guaranteed to be unmapped on destruction.
2023-12-27Chase wlroots!4482Bill Li
2023-12-13output: Destroy when output layout is destroyedAlexander Orzechowski
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
2023-12-13input/seat: drop exclusive_clientSimon Ser
This was a input-inhibit concept.
2023-12-06desktop/xwayland: correctly handle association on o-r changeSimon Ser
When override-redirect changes, we need to setup/teardown listeners, just like we do for map. References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3773
2023-11-23xdg-shell: chase events updateKirill Primak
2023-11-23Add wlr/util/transform.h includesSimon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4097 Closes: https://github.com/swaywm/sway/issues/7830
2023-11-21Fix reference to wlr_output_event_commit.committedSimon Ser
This has been dropped from wlroots. Previous commit missed that.
2023-11-21Apply gamma LUT when an output re-enabledSimon Ser
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3679
2023-10-31chase wlroots!4411Bill Li
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4411 fix #7802
2023-10-29xdg-shell: send maximized if tiled isn't supportedKirill Primak
wlroots doesn't do it automatically anymore.
2023-10-27xdg_shell: don't update wlr_toplevel if the container has no size yetDudemanguy
3d5ae9813d390ea747462fc0026ee43b7c77d0f2 added logic to change the underlying wlr_toplevel size for floating containers, but it does it even if the container has no actual coordinates yet. This doesn't really make sense to update the toplevel size in this case since there's many things that could affect the initial coordinates (sway commands, fullscreen state, etc.). Skip this by doing a crude check to see if the current container state has any width.
2023-10-06Chase wlroots!4331Alexander Orzechowski
2023-10-05Drop support for KDE's idle protocolSimon Ser
We support the standard idle-notify protocol since Sway 1.8.
2023-08-28xdg_shell: update wlr_toplevel size on client resizesDudemanguy
If a floating client resizes itself, sway updates several of its internal dimensions to match but not wlr_toplevel. This means that the next time wlroots sends a toplevel configure event, it can have wrong coordinates that resize the client back to its old size. To fix this, let's just use wlr_xdg_toplevel_set_size so the wlr_toplevel has the same dimensions as sway. Exactly the same as 0183b9d35d0ce750588e700e536b7d2e367b0d0a but the logic is onlly applied to xdg_shell and not xwayland.
2023-08-21chore: chase wlroots xdg-surface role reworkKirill Primak
2023-07-31desktop/output: fix output manager enabled stateSimon Ser
With recent wlroots changes, backends which don't support output modes can now support being disabled. We were always marking mode-less outputs as disabled. Stop doing that, check whether the output takes up some space in the layout instead.