Simon Ser
38839ac536
gamma-control-v1: simplify get_gamma_control error handling
...
Allocate resources only after checking the request.
2023-03-06 13:23:51 +01:00
Simon Ser
9108717d5d
gamma-control-v1: fix handling of duplicate control
...
When a new client comes in and tries to create a
zwlr_gamma_control_v1 object for an output which already has one,
we were destroying the old object and early-returning. The early
return causes the new object to not be set up properly: it's not
inserted in the list and doesn't get the gamma_size event.
Fix this by destroying the new object, and leave the old object
intact, which is what was the intent I think.
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3605
2023-03-06 11:40:48 +01:00
Kirill Primak
3a200aa279
tinywl: init server to zeros
...
This fixes e.g. accessing grabbed_view on a toplevel unmap if no
toplevel was grabbed before.
2023-03-04 17:01:11 +03:00
Isaac Freund
5ae17de23f
xdg-shell: improve validation of resize edges
...
The current validation doesn't catch some invalid values such as 3 or 7.
2023-03-02 21:31:51 +01:00
Simon Ser
97c8ad7c65
backend/wayland: fix leak of some globals
...
Fix a few globals which weren't properly cleaned up. Discovered
in [1].
[1]: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3604
2023-03-01 16:07:54 +01:00
Simon Ser
cab47d33e2
util/log: prefix WLR_REL_SRC_DIR with underscore
...
Just like _WLR_FILENAME and _WLR_ATTRIB_PRINTF, this makes it more
obvious that this isn't part of our API.
2023-03-01 00:52:18 +01:00
Simon Ser
af5cc860e1
backend/wayland: destroy zwp_linux_buffer_params_v1 objects
...
Don't leak these.
2023-02-28 20:05:46 +01:00
Simon Ser
a160304289
backend/drm: use libdisplay-info for CVT mode generation
2023-02-28 14:44:02 +00:00
Simon Ser
35da997001
backend/drm: use libdisplay-info to parse EDID
2023-02-28 14:44:02 +00:00
Simon Ser
40117e1e0d
render/vulkan: prefer render node for wlr_renderer_get_drm_fd()
...
Instead of returning a primary node from wlr_renderer_get_drm_fd(),
prefer to return a render node if any.
2023-02-28 14:25:21 +00:00
Simon Ser
8db0d82890
examples/dmabuf-capture: fix frame_number deprecated in FFmpeg 6.0
...
Fixes the following error:
../examples/dmabuf-capture.c:524:33: error: 'frame_number' is deprecated [-Werror=deprecated-declarations]
524 | ctx->avctx->frame_number, get_fifo_size(&ctx->vid_frames));
| ^~~
2023-02-28 11:57:07 +01:00
Simon Ser
bec94cc040
backend: move #ifdefs to nested functions
...
Instead of littering #ifdefs everywhere, move them to the dedicated
attempt_XXX_backend() functions. This makes the logic in
wlr_backend_autocreate() more readable, and provides better error
messages when the X11/Wayland backends are disabled at compile-time,
or when WLR_BACKENDS contains a backend disabled at compile-time.
2023-02-27 11:33:52 +01:00
Simon Ser
8acaabcbab
backend: make wlr_backend_autocreate() fail when DRM is missing
...
When we change the required dependencies for the DRM backend,
Meson might auto-disable the backend for users missing the new
requirements. This results in confused users [1] because they don't
notice the "drm-backend: NO" line burried in the Meson logs, and
then get a black screen when starting the compositor.
Update wlr_backend_autocreate() to refuse to create a backend with
only libinput (without DRM).
Users really wanting to start their compositor with a libinput
backend and without a DRM backend can manually set WLR_BACKENDS.
[1]: https://github.com/swaywm/sway/issues/7457
2023-02-27 11:18:58 +01:00
Simon Ser
5079000e49
output: allow modeset with buffer while frame is pending
...
Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3600
2023-02-26 18:42:31 +01:00
Kirill Primak
bc4350c976
backend/wayland: reset active pointer on destroy
2022-04-29 21:55:04 +03:00
Kirill Primak
ec2af17674
CONTRIBUTING.md: update init/finish description
2022-04-28 08:30:26 +00:00
Simon Ser
a1e1e9aba8
Revert "backend/wayland: zero out finished input devices"
...
This reverts commit 03c88b07ba .
init functions now zero out the structs.
2022-04-28 10:09:50 +02:00
Simon Ser
6c350799b2
Zero-initialize structs in init functions
...
Ensures there is no field left to its previous undefined value after
calling an init function.
2022-04-28 10:09:50 +02:00
Simon Ser
54653b5d95
util/addon: fix public include
...
Everything in wlr/ is public and should be included via angle-bracket
include directives.
2022-04-26 09:43:10 +02:00
tiosgz
c091a07589
CONTRIBUTING.md: make forks public to let the CI run
...
This little note helps first-time contributors who are in doubt regarding the
repo visibility.
2022-04-24 17:07:04 +00:00
zsugabubus
91da4c557b
xwayland: do not double free server on destroy
2022-04-23 08:08:33 +00:00
Kirill Primak
03c88b07ba
backend/wayland: zero out finished input devices
2022-04-22 17:51:24 +00:00
Kirill Primak
a43d105a50
backend/wayland/pointer: fix indentation
2022-04-22 17:51:24 +00:00
Alexander Orzechowski
2ce0305483
seat: Don't finish wlr_keyboard if server was never started
2022-04-22 01:49:58 +00:00
John Lindgren
640f3b9f21
Revert "Copy xcb_icccm structs into wlroots"
...
The original commit introduced a bug by transposing the order of
some of the fields in xcb_size_hints_t. Since XCB ICCCM support is
required now, we can just eliminate the duplicate structs.
With minor changes:
- Remove #ifdef HAS_XCB_ICCCM guards
- Fix #includes
- Fix references to local size_hints struct
This reverts commit 12b9b1a4bd .
2022-04-17 14:44:52 +00:00
Ferdinand Bachmann
d3a2ea33e5
types/seat/wlr_seat.c: fix focused_client being null after seat_client recreation
2022-04-16 20:56:30 +02:00
Ferdinand Bachmann
2d4e813530
types/wlr_pointer_gestures_v1.c: get client from seat client instead of resource
2022-04-16 20:53:52 +02:00
Ferdinand Bachmann
eedb9df531
types/wlr_pointer_gestures_v1: null-check both focused_surface and focused_client
...
(fixes #3385 )
2022-04-15 16:06:16 +02:00
Kirill Primak
4ba8458255
scene/output-layout: fix scene destroy handler
2022-04-14 06:51:39 +00:00
Kirill Primak
dec2565f2b
xdg-toplevel: don't schedule configures on state requests
2022-04-13 17:00:06 +00:00
Kirill Primak
04aa44b4df
xdg-foreign-v2: treat unmapped parents as NULL
2022-04-13 16:48:15 +00:00
Kirill Primak
dac040f87f
xdg-foreign-v1: treat unmapped parents as NULL
2022-04-13 16:48:15 +00:00
Kirill Primak
bf3f60ff73
xdg-toplevel: treat unmapped parents as NULL
2022-04-13 16:48:15 +00:00
Kirill Chibisov
2e14bed9f7
meson: use target_machine instead of host_machine
2022-04-03 11:46:25 +00:00
Kirill Primak
578e5614d4
tinywl: remove outdated non-feature from README.md
...
Now that tinywl uses wlr_scene under the hood, damage tracking comes for
free.
2022-04-01 14:22:28 +00:00
Kirill Primak
62fbf3f4ba
tinywl: don't generate xdg-shell-protocol.c
...
It's unused, and wlroots-based compositors don't need to do this anyway.
2022-04-01 11:51:24 +03:00
Kenny Levinsen
bb32349c97
meson: soversion arg should be string
...
muon, a meson implementation in C, is more strict with its types and
revealed this discrepancy between meson behavior and documentation.
2022-03-28 20:21:49 +02:00
Guido Günther
dd03d839ab
xdg-activation: Deduplicate token creation code
...
There were three places initializing a token:
- wlr_xdg_activation_v1_add_token
- wlr_xdg_activation_token_v1_create
- activation_handle_get_activation_token
The initialization of the token.destroy was missing in the first one. To
prevent these functions from getting out of sync move the token creation
into a common function.
Fixes 4c59f7d4 ("xdg-activation: Allow to submit tokens")
2022-03-26 17:28:51 +01:00
Leonardo Hernández Hernández
4519117a68
seat: take wlr_keyboard in wlr_seat_set_keyboard()
...
Signed-off-by: Leonardo Hernández Hernández <leohdz172@protonmail.com>
2022-03-23 13:08:41 +00:00
Guido Günther
4cc2a03620
layer-shell: Make wlr_layer_surface_v1_from_resource public
...
This allows compositors to leverage the `wl_instance_of` based type
check.
2022-03-23 09:19:43 +00:00
Simon Zeni
aaf787ee56
types/wlr_touch: uniformize events name
2022-03-17 18:16:14 +00:00
Simon Zeni
e732c5c895
types/wlr_tablet_tool: uniformize events name
2022-03-17 18:16:14 +00:00
Simon Zeni
d1f543a9d8
types/wlr_tablet_pad: uniformize events name
2022-03-17 18:16:14 +00:00
Simon Zeni
13d7fa2f03
types/wlr_switch: uniformize events name
2022-03-17 18:16:14 +00:00
Simon Zeni
9a17200446
types/wlr_keyboard: uniformize events name
2022-03-17 18:16:14 +00:00
Simon Zeni
bd6c000d14
types/wlr_pointer: uniformize events name
2022-03-17 18:16:14 +00:00
Simon Zeni
96ccc50c57
types/wlr_input_device: move width_mm and height_mm fields to wlr_tablet and wlr_touch
2022-03-17 13:44:19 -04:00
Simon Zeni
a92e5f8d46
types/wlr_input_device: move output_name field to wlr_pointer and wlr_touch
2022-03-17 13:44:18 -04:00
Simon Zeni
2001441a37
backend/wayland: remove wl_seat_listener from public API
2022-03-17 17:16:47 +00:00
Simon Zeni
b7e9ad7989
backend/wayland: remove wlr_wl_input_device
2022-03-17 17:16:47 +00:00