Simon Ser
7c6212a0f7
render/drm_format_set: introduce wlr_drm_format_dup
2020-11-15 22:48:42 +01:00
Simon Ser
5913040110
render: introduce wlr_gbm_allocator
2020-11-15 22:48:42 +01:00
Simon Ser
f47445f142
render: introduce wlr_allocator
2020-11-15 22:48:42 +01:00
Simon Ser
aaa3fcf66f
backend/libinput: require libinput 1.14
...
We have the policy of requiring up-to-date dependencies instead of
adding conditionals for older versions. libinput 1.14 was published more
than 1 year ago.
2020-11-15 18:57:16 +01:00
Mykola Orliuk
2eae9ec7c8
backend/wayland: Set cursor indivdualy per output
2020-11-12 12:31:32 +01:00
Mykola Orliuk
44531e16e0
backend/wayland: Add active pointer per host seat
...
Every host seat with pointer capability propagates events to one of
sub-pointer depending which output window we entered.
active_pointer tracks reference to sub-pointer on enter/leave events to
avoid lookup for it on every move events.
Fixes swaywm/wlroots#1499
2020-11-12 12:31:32 +01:00
Mykola Orliuk
ce8855ca2a
backend/wayland: Bind pointer listener to seat
2020-11-12 12:31:32 +01:00
Mykola Orliuk
07e2e0f60c
backend/wayland: Listen to pointers from all seats
...
This effectively gets swaywm/wlroots#1499 to the point where
functionality somewhat preserved and no crash happens.
We still can have only one cursor, but we can control it from multiple
seats in time-sharing manner by entering/leaving output.
2020-11-12 12:31:32 +01:00
Mykola Orliuk
44c4773d58
backend/wayland: Use seat name in input names
2020-11-12 12:31:32 +01:00
Mykola Orliuk
70ffda3ea3
backend/wayland: Add registering multiple seats
2020-11-12 12:31:32 +01:00
Mykola Orliuk
85b0872650
backend/wayland: Link input devices with seats
2020-11-12 12:31:32 +01:00
Mykola Orliuk
40bfd9f8f7
backend/wayland: Bind seat listener to wlr_wl_seat
2020-11-12 12:31:32 +01:00
Isaac Freund
e06c9e43af
Remove unneeded includes from wlr_input_device.h
...
This uncovered many places where we were using things without directly
including them.
2020-11-11 15:40:47 +01:00
Isaac Freund
0724b3c453
Use uint32_t in wlr_renderer_begin signature
...
This matches the signature of wlr_renderer_impl.begin
2020-11-11 11:01:46 +01:00
Isaac Freund
7693f61d81
Replace wlr_key_state with wl_keyboard_key_state
...
There's no reason to have duplicate enums
2020-11-11 10:58:38 +01:00
Simon Ser
238d1c078f
Update version to 0.12.0
2020-11-08 15:01:44 +01:00
Ilia Bozhinov
9595f95452
xdg_shell: handle inert popups
...
xdg_popups can be destroyed by the compositor when closed. When this happens,
wlroots makes the xdg_popup surface inert and resets the xdg_surface role to
NONE.
Currently, wlroots sends a protocol error and asserts that an xdg_surface has
a role when committed. This is racy if at the same time the client commits an
xdg_popup and the compositor closes it. This patch removes the assertion and
ignores commits on xdg_surfaces without a role set.
2020-11-08 14:26:03 +01:00
Simon Ser
372a52ecc0
input-method: send modifiers in set_keyboard
...
Otherwise the client might have an outdated modifiers state. The same is
done in wlr_seat_keyboard [1].
[1]: 8348fc3ef8/types/seat/wlr_seat_keyboard.c (L163)
2020-11-06 19:14:55 +01:00
Isaac Freund
8348fc3ef8
xwayland: remove unused listener
2020-11-05 13:18:04 +01:00
Simon Ser
4471a83ed0
screencopy: send failed when copying a DMA-BUF with a region
...
We don't support that yet.
2020-11-05 09:43:42 +01:00
Simon Ser
51fc7ddb29
screencopy: perform DMA-BUF copy on output commit
2020-11-05 09:43:42 +01:00
Simon Ser
f0945e112f
export-dmabuf: export DMA-BUF on output commit
...
We were previously exporting DMA-BUFs when receiving the capture_output
request, and sending a done event on wlr_output.events.precommit. Instead,
export and send done on wlr_output.events.commit.
2020-11-05 09:43:42 +01:00
Simon Ser
8c8164c4a6
output: add when field to wlr_output_event_commit
...
Similar to the one already present in wlr_output_event_precommit.
2020-11-05 09:43:42 +01:00
Simon Ser
ccd313e01a
output: update docs to reflect reality
...
The docs were outdated and weren't matching what the DRM backend does
(the only implementor of wlr_output_export_dmabuf).
2020-11-05 09:43:42 +01:00
Simon Ser
1328477a82
backend/drm: export pending FB in export_dmabuf, if any
...
This allows callers to grab the current frame right after committing it,
without having to incur a full vblank worth of latency.
2020-11-05 09:43:42 +01:00
Simon Ser
2934a72920
screencopy: stop setting needs_frame flag
...
This is already done by wlr_output_schedule_frame (it calls
wlr_output_update_needs_frame).
2020-11-04 12:02:56 +01:00
Simon Ser
c2db691cad
gamma-control-v1: apply gamma LUT when output gets enabled
...
Closes: https://github.com/swaywm/wlroots/issues/2372
2020-11-03 17:47:04 +01:00
Simon Ser
be1e7647c3
xwayland: log unhandled NET_WM_STATE property changes
2020-11-03 18:36:30 +02:00
Simon Ser
1fdaaf697a
xwayland: minor code style fixes
2020-11-03 15:31:23 +01:00
Simon Ser
ee43ef3c9d
backend/drm: fix "a page-flip is already pending" errors on modeset
...
When performing a modeset, the DRM backend will request a page-flip
event. However frame_pending wasn't set to true, so any subsequent
wlr_output_schedule_frame calls would imemdiately trigger a synthetic
frame event, asking the compositor to submit a new frame. Committing the
new frame fails with "a page-flip is already pending" error in the DRM
backend.
2020-11-03 08:09:54 +01:00
Simon Ser
f0ddcd361e
render: define EGL_NO_PLATFORM_SPECIFIC_TYPES ( #2452 )
...
This avoids Xlib.h inclusion via EGL headers. See [1] for discussion.
This change is based on a Weston commit [2].
[1]: https://github.com/KhronosGroup/EGL-Registry/pull/111
[2]: https://gitlab.freedesktop.org/wayland/weston/commit/526765ddfdfd
2020-11-02 10:51:52 +01:00
Tudor Brindus
0f9b2bfa64
render/dmabuf: use bitmask for wlr_dmabuf_attributes_flags
2020-10-31 23:15:21 +01:00
Tudor Brindus
368d0146fb
util/edges: use bitmask for wlr_edges
2020-10-31 23:15:21 +01:00
Tudor Brindus
0fdb41fe7c
types/wlr_output_layout: use bitmask for wlr_direction
2020-10-31 23:15:21 +01:00
Tudor Brindus
7c6e06fd13
types/wlr_keyboard: use bitmasks for wlr_keyboard_led and wlr_keyboard_modifier enums
2020-10-31 23:15:21 +01:00
Marten Ringwelski
85757665e6
backend/drm: Check if output is enabled before sending frame event
...
When an output is disabled one last pageflip will happen to disable it.
Currently this pageflip causes a frame event.
Since the output is disabled we don't want to send this frame event.
2020-10-30 10:04:54 +01:00
Ilia Bozhinov
346188c015
xdg_shell: fix a typo
2020-10-27 18:49:19 +01:00
Scott Moreau
79c7591dc1
foreign toplevel: Fix whitespace error
2020-10-20 19:49:44 +02:00
Daniel Kondor
b4ed8b3d74
foreign toplevel: send parent event only to clients that support it
2020-10-20 09:12:07 +02:00
Tudor Brindus
5217456b50
xwayland: fix minor typo in debug log
...
This accidentally slipped through 1b0e4c7
.
2020-10-20 09:09:49 +02:00
Mykola Orliuk
31aa7f4c95
backend/wayland: fix some keyboard/touch leaks
2020-10-18 21:25:25 +02:00
Mykola Orliuk
009cd634a2
backend/wayland: fix input creation error handling
2020-10-18 21:25:25 +02:00
Mykola Orliuk
41bf1c6871
backend/wayland: add error flow in create_wl_seat
2020-10-18 21:25:25 +02:00
Daniel Kondor
36395e5b1c
foreign-toplevel-management: report parent toplevel
...
Based on the wlr-protocols PR:
https://github.com/swaywm/wlr-protocols/pull/52
2020-10-18 17:14:35 +02:00
Mykola Orliuk
1ac5257357
backend/wayland: factor out wlr_wl_seat
2020-10-18 16:28:12 +02:00
Mykola Orliuk
df417b7e95
backend/wayland: manage cursor for current pointer
2020-10-18 16:28:12 +02:00
Ilia Bozhinov
b98522b38f
backend/wayland: add touch support to the wayland backend
...
Goal currently is to get support working for a single output, thus there is only one touch device created.
Multi-output support is left for later.
2020-10-18 15:33:03 +02:00
Isaac Freund
e410ff8dd4
wlr_drag: remove unused point_destroy field
2020-10-18 15:17:28 +02:00
Isaac Freund
616f06c25c
xdg_positioner: remove unused field
...
The resource field of wlr_xdg_positioner is never initialized or
accessed within wlroots. The wl_resource for this interface is stored
in the wlr_xdg_positioner_resource struct.
2020-10-16 12:49:37 +02:00
Ilia Bozhinov
99f3c643bf
xwayland: add set_geometry event
...
This is necessary to react to changes in position of override-redirect
views.
2020-10-14 21:49:51 +02:00