- 18 Nov, 2021 1 commit
-
-
Simon Zeni authored
-
- 14 Nov, 2021 1 commit
-
-
Raphael Robatsch authored
Closes #3324.
-
- 10 Nov, 2021 1 commit
-
-
Cole Mickens authored
-
- 09 Nov, 2021 1 commit
-
-
- 08 Nov, 2021 4 commits
-
-
The protocol uses a signed integer here, which is also what the wlr_input_method_v2_preedit_string struct provides to compositors from the input method protocol. Sway currently just passes those int32_t values directly to this function leading to an implicit conversion.
-
Simon Ser authored
Callers can access output->front_buffer instead.
-
Simon Ser authored
-
Simon Ser authored
-
- 07 Nov, 2021 2 commits
-
-
Isaac Freund authored
-
Simon Ser authored
-
- 06 Nov, 2021 2 commits
-
-
Kirill Primak authored
-
Isaac Freund authored
-
- 02 Nov, 2021 4 commits
-
-
Simon Ser authored
When a connector ID is specified in a hotplug event, don't scan all connectors. Only scan the connector that has changed.
-
Simon Ser authored
This struct contains additional information for session device change events, such as the DRM connector ID that has changed.
-
Simon Ser authored
This allows compositors to handle touch pointer emulation manually, instead of having Xwayland do it [1]. [1]: xorg/xserver!691
-
- 01 Nov, 2021 2 commits
- 31 Oct, 2021 4 commits
-
-
-
The data field is useful to track metadata about a token. The destroy events are useful for compositors that track application startup to let them know they can stop doing that.
-
These new functions allow a compositor to request new managed tokens without participating in the xdg-activation procedure as a wayland client. This enables the compositor itself to behave as a launcher application.
- 29 Oct, 2021 4 commits
-
-
Simon Ser authored
drmModeCreatePropertyBlob cannot create zero-sized blobs, that fails with EINVAL. Closes: https://github.com/swaywm/wlroots/issues/3297
-
Simon Ser authored
Variables on the stack are released when the parent block is closed. Here, `now` is used outside of the `if` block, causing the following crash when starting Sway with the headless backend: ==49606==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fff94645f90 at pc 0x5558aeae9e29 bp 0x7fff94645df0 sp 0x7fff94645de0 READ of size 16 at 0x7fff94645f90 thread T0 #0 0x5558aeae9e28 in handle_present ../sway/desktop/output.c:834 #1 0x7fdc8d6792fb in wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:29 #2 0x7fdc8d54f77f in wlr_output_send_present ../subprojects/wlroots/types/output/output.c:766 #3 0x7fdc8d524a28 in output_commit ../subprojects/wlroots/backend/headless/output.c:71 #4 0x7fdc8d54d2db in wlr_output_commit ../subprojects/wlroots/types/output/output.c:629 #5 0x5558aeb013cb in output_render ../sway/desktop/render.c:1157 #6 0x5558aeae549e in output_repaint_timer_handler ../sway/desktop/output.c:544 #7 0x5558aeae5f8a in damage_handle_frame ../sway/desktop/output.c:606 #8 0x7fdc8d6792fb in wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:29 #9 0x7fdc8d6007d5 in output_handle_frame ../subprojects/wlroots/types/wlr_output_damage.c:44 #10 0x7fdc8d6792fb in wlr_signal_emit_safe ../subprojects/wlroots/util/signal.c:29 #11 0x7fdc8d54ee84 in wlr_output_send_frame ../subprojects/wlroots/types/output/output.c:720 #12 0x7fdc8d54efc3 in schedule_frame_handle_idle_timer ../subprojects/wlroots/types/output/output.c:728 #13 0x7fdc8c9dcf5a in wl_event_loop_dispatch_idle (/usr/lib/libwayland-server.so.0+0xaf5a) #14 0x7fdc8c9dcfb4 in wl_event_loop_dispatch (/usr/lib/libwayland-server.so.0+0xafb4) #15 0x7fdc8c9dabc6 in wl_display_run (/usr/lib/libwayland-server.so.0+0x8bc6) #16 0x5558aeac8e30 in server_run ../sway/server.c:285 #17 0x5558aeac3c7d in main ../sway/main.c:396 #18 0x7fdc8be35b24 in __libc_start_main (/usr/lib/libc.so.6+0x27b24) #19 0x5558aea8686d in _start (/home/simon/src/sway/build/sway/sway+0x33f86d)
-
Simon Ser authored
The BO handle table exists to avoid double-closing a BO handle, which aren't reference-counted by the kernel. But if we can guarantee that there is only ever a single ref for each BO handle, then we don't need the BO handle table anymore. This is possible if we create the handle right before the ADDFB2 IOCTL, and close the handle right after. The handles are very short-lived and we don't need to track their lifetime. Because of multi-planar FBs, we need to be a bit careful: some FB planes might share the same handle. But with a small check, it's easy to avoid double-closing the same handle (which wouldn't be a big deal anyways). There's one gotcha though: drmModeSetCursor2 takes a BO handle as input. Saving the handles until drmModeSetCursor2 time would require us to track BO handle lifetimes, so we wouldn't be able to get rid of the BO handle table. As a workaround, use drmModeGetFB to turn the FB ID back to a BO handle, call drmModeSetCursor2 and then immediately close the BO handle. The overhead should be minimal since these IOCTLs are pretty cheap. Closes: https://github.com/swaywm/wlroots/issues/3164
-
Simon Ser authored
If the output is destroyed after capture_output but before frame_handle_copy, it'll have a dangling output pointer. Add the output destroy listener in capture_output. Closes: https://github.com/swaywm/wlroots/issues/3284
-
- 27 Oct, 2021 6 commits
-
-
This is only called from one function. To destroy the wlr_scene_subsurface_tree from elsewhere, callers can destroy the scene-graph node returned by wlr_scene_subsurface_tree_create instead (just like a compositor would do). subsurface_tree_handle_surface_destroy does exactly this. Inlining avoids calling subsurface_tree_destroy by mistake.
-
Found via scan-build
-
calloc is moved to right before egl is called to avoid requiring to free() unused memory. Found via scan-build
-
Found via scan-build
-
Since libinput is an optional dependency the libinput backend is possibly undeclared. wlr_backend_destroy(backend) below will clean up the child libinput backend if any.
-
Simon Ser authored
-
- 26 Oct, 2021 3 commits
-
-
As found in e.g. the Steam Deck.
-
-
This can happen if the compositor enables an output without picking a mode, or performs a modeset with a zero width/height.
-
- 25 Oct, 2021 1 commit
-
-
Simon Ser authored
A wayland-protocols patch [1] has added error codes for invalid surfaces. [1]: wayland/wayland-protocols!57 Closes: https://github.com/swaywm/wlroots/issues/2600
-
- 22 Oct, 2021 4 commits
-
-
This organizes the wlr_output implementation into separate files. This avoids having a single mega-file with lots of unrelated parts and makes it more obvious what the interactions between all the parts are. No functional changes, just moving code around.
-
Check if only a single node intersects with the output viewport and all of its properties match. In this case, attempt direct scan-out.
-
This allows compositors to more easily implement sending wl_surface.frame callback done events.
-
-