aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* | xdg_shell: Extract struct for popup descriptorLibravatar Alexander Orzechowski2024-02-12
| |
* | layer_shell: Arrange popups even if exclusive zone doesn't changeLibravatar Alexander Orzechowski2024-02-12
| |
* | ext-foreign-toplevel-list: Implement protocolLibravatar Merlin Lex2024-02-12
| | | | | | | | References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4543
* | config: use format_str() instead of hand-rolled snprintf()Libravatar Simon Ser2024-02-08
| |
* | commands: make primary_selection a config-only commandLibravatar Simon Ser2024-02-05
| | | | | | | | It's not possible to switch this at runtime.
* | commands: note how xwayland/primary_selection are reset on reloadLibravatar Simon Ser2024-02-05
| |
* | commands/primary_selection: drop duplicate bool parsingLibravatar Simon Ser2024-02-05
| |
* | sway/config.c: only reset primary_selection at launchLibravatar Violet Purcell2024-02-05
| | | | | | | | | | Otherwise, an error will be shown whenever reloading due to the value of primary_selection being reset to true.
* | Drop old security config remnantsLibravatar Simon Ser2024-02-03
| |
* | Ensure get_text_width() returns a positive valueLibravatar Alexander Orzechowski2024-02-02
| | | | | | | | Closes: https://github.com/swaywm/sway/issues/7940
* | sway/output: Improve logging of swaybg execvp failure and more checksLibravatar Tamino Bauknecht2024-01-29
|/ | | | | | This doesn't catch the error if a background changing command is executed via swaymsg, but improves logging. The additional checks at least propagate if e.g. forking failed.
* build: bump version to 1.10-devLibravatar Simon Ser2024-01-26
|
* Chase wlroots!4443Libravatar Kirill Primak2024-01-25
|
* Chase wlroots!4003Libravatar Kirill Primak2024-01-23
|
* layer_shell: Fix typo of return instead of continueLibravatar Alexander Orzechowski2024-01-21
| | | | | Otherwise we would skip arranging the rest of the surfaces if one of them isn't initialized.
* Fix SIGSEGV on output destroyLibravatar Daniel De Graaf2024-01-21
| | | | | | | | | | | ``` 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`.
* Add debug flag to re-enable wl_drmLibravatar Simon Ser2024-01-20
| | | | | | | | | | 7e69a7076fc8 ("Drop wl_drm") has dropped wl_drm, however a lot of software wasn't quite ready for this (Xwayland, libva, amdvlk). Keep wl_drm disabled by default to pressure the wl_drm phase-out, but add a -Dlegacy-wl-drm flag for users to restore the previous behavior in the meantime. References: https://github.com/swaywm/sway/issues/7897
* Clarify gdk-pixbuf dependency purposeLibravatar Simon Ser2024-01-19
| | | | | | | | swaybg is out-of-tree so not relevant here. swaybar's tray doesn't actually depend on gdk-pixbuf, but gdk-pixbuf enables more image formats for swaybar tray when available. Closes: https://github.com/swaywm/sway/issues/7913
* scene_graph: port wlr_forgein_toplevel_management output enter/leave eventsLibravatar Alexander Orzechowski2024-01-18
|
* remove damage debug optionsLibravatar Alexander Orzechowski2024-01-18
| | | | | Now that we use wlr_scene, wlroots handles these. If available use the wlroots debug options instead.
* Fix SIGSEGV on surface destroyLibravatar Alexander Orzechowski2024-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ``` Program terminated with signal SIGSEGV, Segmentation fault. warning: Section `.reg-xstate/3960717' in core file too small. 0 container_get_siblings (container=0x55bcde4797f0) at ../sway/tree/container.c:1228 1228 if (list_find(container->pending.workspace->tiling, container) != -1) { [Current thread is 1 (Thread 0x7fa23b4a2940 (LWP 3960717))] (gdb) bt full= No symbol "full" in current context. (gdb) bt full 0 container_get_siblings (container=0x55bcde4797f0) at ../sway/tree/container.c:1228 1 0x000055bcdb62c704 in edge_is_external (cont=0x55bcde4797f0, edge=(WLR_EDGE_TOP | WLR_EDGE_LEFT)) at ../sway/input/seatop_default.c:54 siblings = 0x55bcde4797f0 index = 32766 layout = L_NONE __PRETTY_FUNCTION__ = "edge_is_external" 2 0x000055bcdb62c96f in find_resize_edge (cont=0x55bcde4797f0, surface=0x0, cursor=0x55bcddd5c2e0) at ../sway/input/seatop_default.c:106 edge = (WLR_EDGE_TOP | WLR_EDGE_LEFT) 3 0x000055bcdb620b3c in cursor_update_image (cursor=0x55bcddd5c2e0, node=0x55bcde4797f0) at ../sway/input/cursor.c:144 edge = WLR_EDGE_NONE 4 0x000055bcdb62eb8f in handle_rebase (seat=0x55bcddd5a740, time_msec=488992944) at ../sway/input/seatop_default.c:773 e = 0x55bcddd5c8e0 cursor = 0x55bcddd5c2e0 surface = 0x0 sx = 0 sy = 0 5 0x000055bcdb62c531 in seatop_rebase (seat=0x55bcddd5a740, time_msec=488992944) at ../sway/input/seat.c:1585 6 0x000055bcdb620a7d in cursor_rebase (cursor=0x55bcddd5c2e0) at ../sway/input/cursor.c:126 time_msec = 488992944 7 0x000055bcdb620ac4 in cursor_rebase_all () at ../sway/input/cursor.c:136 seat = 0x55bcddd5a740 8 0x000055bcdb61cc95 in transaction_apply (transaction=0x55bcde5b28c0) at ../sway/desktop/transaction.c:704 9 0x000055bcdb61ccdb in transaction_progress () at ../sway/desktop/transaction.c:716 10 0x000055bcdb61d1f9 in transaction_commit_pending () at ../sway/desktop/transaction.c:836 transaction = 0x55bcde5b28c0 11 0x000055bcdb61d596 in _transaction_commit_dirty (server_request=true) at ../sway/desktop/transaction.c:912 12 0x000055bcdb61d5ac in transaction_commit_dirty () at ../sway/desktop/transaction.c:916 13 0x000055bcdb65f579 in view_unmap (view=0x55bcde2ff180) at ../sway/tree/view.c:847 parent = 0x55bcde489010 ws = 0x55bcdde19080 seat = 0x55bcddd5a198 14 0x000055bcdb61e461 in handle_unmap (listener=0x55bcde2ff368, data=0x0) at ../sway/desktop/xdg_shell.c:394 xdg_shell_view = 0x55bcde2ff180 view = 0x55bcde2ff180 __PRETTY_FUNCTION__ = "handle_unmap" 15 0x00007fa23c4ae87f in wlr_signal_emit_safe (signal=0x55bcde46cf38, data=0x0) at ../util/signal.c:29 pos = 0x55bcde2ff368 l = 0x55bcde2ff368 cursor = {link = {prev = 0x55bcde2ff368, next = 0x7ffe240702a0}, notify = 0x7fa23c4ae7c9 <handle_noop>} end = {link = {prev = 0x7ffe24070280, next = 0x55bcde46cf38}, notify = 0x7fa23c4ae7c9 <handle_noop>} 16 0x00007fa23c47c3c7 in unmap_xdg_surface (surface=0x55bcde46ce30) at ../types/xdg_shell/wlr_xdg_surface.c:40 __PRETTY_FUNCTION__ = "unmap_xdg_surface" popup = 0x55bcde46ce60 popup_tmp = 0x55bcde46ce60 configure = 0x7ffe24070360 tmp = 0x55bcde488020 17 0x00007fa23c47cd47 in xdg_surface_role_precommit (wlr_surface=0x55bcde488020, state=0x55bcde4881a8) at ../types/xdg_shell/wlr_xdg_surface.c:330 surface = 0x55bcde46ce30 18 0x00007fa23c4813b2 in surface_commit_state (surface=0x55bcde488020, next=0x55bcde4881a8) at ../types/wlr_compositor.c:407 __PRETTY_FUNCTION__ = "surface_commit_state" invalid_buffer = false subsurface = 0xbd8e9aecae023300 --Type <RET> for more, q to quit, c to continue without paging-- 19 0x00007fa23c48192a in surface_handle_commit (client=0x55bcde488850, resource=0x55bcde2fdb80) at ../types/wlr_compositor.c:523 surface = 0x55bcde488020 20 0x00007fa23bb5ed4a in () at /usr/lib/libffi.so.8 21 0x00007fa23bb5e267 in () at /usr/lib/libffi.so.8 22 0x00007fa23c517323 in () at /usr/lib/libwayland-server.so.0 23 0x00007fa23c5125cc in () at /usr/lib/libwayland-server.so.0 24 0x00007fa23c5151ca in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0 25 0x00007fa23c512d37 in wl_display_run () at /usr/lib/libwayland-server.so.0 26 0x000055bcdb616885 in server_run (server=0x55bcdb68c5c0 <server>) at ../sway/server.c:307 27 0x000055bcdb61594e in main (argc=3, argv=0x7ffe24070af8) at ../sway/main.c:433 ``` It seems to be happening because of this set of events all happening in the span of a single transaction: 1. You kill a tiled window that is the only window in a workplace. 2. Sway will destroy the workspace but not yet the container - this makes `con->pending.workspace` NULL. 3. Cursor glyphs get recomputed causing sway to recompute if the cursor is on a container edge. 4. That computation causes an access to the NULL workspace. Crash.
* scene_graph: Implement toplevel clippingLibravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Port opacity and filter modesLibravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Arrange scene graph on transaction applyLibravatar Alexander Orzechowski2024-01-18
|
* container: Don't track outputsLibravatar Alexander Orzechowski2024-01-18
| | | | The scene graph abstraction does this for us
* Delete old damage tracking codeLibravatar Alexander Orzechowski2024-01-18
| | | | The new scene graph abstraction handles this for us.
* scene_graph: Port view saved buffersLibravatar Alexander Orzechowski2024-01-18
|
* xwayland: Cleanup geometry handling on commitLibravatar Alexander Orzechowski2024-01-18
| | | | | | | | | | | 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.
* scene_graph: Port xwaylandLibravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Port xdg_shellLibravatar Alexander Orzechowski2024-01-18
|
* transaction: ready signals will return success boolsLibravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Port container server side decorationsLibravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Port layer_shellLibravatar Alexander Orzechowski2024-01-18
|
* input: Query scene graph for relevant surface/node intersectionsLibravatar Alexander Orzechowski2024-01-18
|
* Introduce sway_text_nodeLibravatar Alexander Orzechowski2024-01-18
| | | | | This is a helper on top of a wlr_scene_buffer that will handle text rendering for us.
* renderer: Remove in favor of scene_graphLibravatar Alexander Orzechowski2024-01-18
|
* seat: Remove dead seatop_render functionLibravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Port ext_session_v1Libravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Port seatop_move_tiling indicatorsLibravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Port seat drag iconsLibravatar Alexander Orzechowski2024-01-18
|
* renderer: Render scene_graphLibravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Introduce sway_scene_descriptorLibravatar Alexander Orzechowski2024-01-18
| | | | | | | | | Across a wayland compositor, there are multiple shells: It can be a toplevel, or a layer_shell, or even something more meta like a drag icon or highlight indicators when dragging windows around. This object lets us store values that represent these modes of operation and keep track of what object is being represented.
* scene_graph: Use built-in linux dmabuf feedback handlingLibravatar Alexander Orzechowski2024-01-18
|
* scene_graph: Maintain `wlr_scene_node`s for the sway tree.Libravatar Alexander Orzechowski2024-01-18
|
* view: init function should return a success boolLibravatar Alexander Orzechowski2024-01-18
|
* desktop: Rename layers to shell_layersLibravatar Alexander Orzechowski2024-01-18
| | | | | This code will be deleted later, but for the time being rename it so it doesn't conflict with future properties.
* layer-shell: don't configure uninitialized surfacesLibravatar Kirill Primak2024-01-17
|
* layer-shell: wait for an initial commit before configuringLibravatar Kirill Primak2024-01-17
|
* layer-shell: don't try to unmap on destroyLibravatar Kirill Primak2024-01-17
| | | | A surface is guaranteed to be unmapped on destruction.
* Mark DRM lease protocol privilegedLibravatar Simon Ser2024-01-08
| | | | | Allowing sandboxed clients to request DRM leases has security implications.