Age | Commit message (Collapse) | Author |
|
Fixes: 27fba3df4347 ("render: use DRM formats in wlr_texture_from_pixels")
Closes: https://github.com/swaywm/wlroots/issues/2757
|
|
Causes some build failures on Clang.
Fixes: 4b43aebdc7ed ("build: add -Wformat=2 -Walloca")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
All backends now use wlr_swapchain. This means the renderer is
guaranteed to have a current_buffer bound.
Remove the legacy code used for EGLSurface.
|
|
If the stride is too small, the driver could end up segfaulting
(e.g. radeonsi segfaults in __memmove_sse2_unaligned_erms).
|
|
|
|
A libwayland-cursor bug [1] makes many clients crash.
[1]: https://gitlab.freedesktop.org/wayland/wayland/-/issues/194
Fixes: 91fa2ff3959a ("surface: check buffer size is compatible with scale")
Closes: https://github.com/swaywm/sway/issues/6014
|
|
This fixes some build warnings.
Closes: https://github.com/swaywm/wlroots/issues/2740
References: https://github.com/swaywm/wlroots/pull/2736
|
|
Fixes this warning:
WARNING: Project targeting '>=0.54.0' but tried to use feature introduced in '0.56.0': variables as dictionary.
Fixes: 6f873078d4c0 ("build: use dictionnary for features instead of configuration_data")
|
|
|
|
|
|
this avoids having to parse the config.h file from builds systems
of projects using wlroots.
|
|
This allows users to to something like this when wlroots is used as a
subproject:
wlr_has_xwayland = wlroots.get_variable('have_xwayland')
Instead of having to parse conf_data from the subproject object.
|
|
This allows us to easily iterate on all features and only deal with
bools.
|
|
This was the actual underlying cause of #2192; we were not getting the
XFIXES_SELECTION_NOTIFY event in time.
|
|
|
|
Our internal state machine gets screwed up if selection events are not
monotonically increasing in time, and we can enter a self-copy loop from
the proxy window that exhausts all pipes.
Snippet of logs when this occurs:
00:00:46.238 [wlr] [xwayland/selection/incoming.c:487] XCB_XFIXES_SELECTION_NOTIFY (selection=277, owner=4194626)
00:00:46.238 [wlr] [xwayland/selection/incoming.c:487] XCB_XFIXES_SELECTION_NOTIFY (selection=277, owner=2097153)
00:00:46.238 [wlr] [xwayland/selection/outgoing.c:378] XCB_SELECTION_REQUEST (time=58979563 owner=2097153, requestor=2097153 selection=277, target=279, property=278)
00:00:46.238 [wlr] [xwayland/selection/outgoing.c:397] ignoring old request from timestamp 58979563; expecting > 58979563
00:00:46.238 [wlr] [xwayland/selection/outgoing.c:29] SendEvent destination=2097153 SelectionNotify(31) time=58979563 requestor=2097153 selection=277 target=279 property=0
00:00:46.238 [wlr] [xwayland/selection/incoming.c:453] XCB_SELECTION_NOTIFY (selection=277, property=0, target=279)
Note that 2097153 is `selection->window`, and 4194626 is Emacs.
The race occurs if the selection owner changes back to our proxy window
between when we get `XCB_XFIXES_SELECTION_NOTIFY` for Emacs and when we
call `xcb_convert_selection` in `incoming.c:source_send` -- the
ConvertSelection request can end up hitting our proxy window, but the
timestamp will be rejected.
Fixes #2192.
|
|
There is one exception: layer-shell still uses wlr_log. Would need to
convert to fprintf to drop the wlroots dep there.
Fixes: 34e7f69d6942 ("examples: remove dependency on wlr_egl from clients")
|
|
We use egl_common.h instead.
Fixes: 34e7f69d6942 ("examples: remove dependency on wlr_egl from clients")
|
|
Just use fprintf instead of wlr_log.
|
|
They free their argument, so the name is more clear.
|
|
Fixes a double-free experienced with Firefox and
xdg-desktop-portal-gtk.
|
|
|
|
This relies on [1].
[1]: https://gitlab.freedesktop.org/wayland/wayland/-/commit/8d5fadad47aad420b0d83fffc8ad573766a9c75e
|
|
Depends on [1].
[1]: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/79
|
|
We don't need it anymore now that we've stopped using the EGL Xlib
platform.
|
|
Store the previously focused surface in `state->focused` as well as in
`state->original` when starting an implicit grab. That way at the end
of an implicit grab, the detection whether the grab started and ended
on the same surface works as intended, even if the original surface was
never left at all.
|
|
"resource_list" no longer exists for regions. Remove the last remaining description of what it does.
|
|
Mesa provides YUV shaders, and can import multi-planar YUV DMA-BUFs
as a single EGLImage. Remove the arbitrary limitation.
If the driver doesn't support importing YUV as a single EGLImage,
the import will fail and the result will be the same anyways.
|
|
Fixes #2659
|
|
Otherwise it gets leaked never to be recovered.
|
|
This requires a change to the type of `struct wlr_tablet` and
`wlr_tablet_init` signature, both of which are part of the unstable API.
|
|
|
|
|
|
|
|
|
|
There seems to be no reason why we can't service multiple Wayland-to-X11
transfers concurrently, so long as they are to different windows (or
possibly, same windows but different target properties?)
This commit removes the queuing logic, but retains the request
de-duplication from #2428.
|
|
Previously, the clipboard and primary selections shared the same window.
This was racey, and could have led to pasting failures.
On xfixes selection owner change notification, the logic for requesting
the supported mimetypes of the new owner's selection looks like:
xcb_convert_selection(
xwm->xcb_conn,
selection->window,
selection->atom,
xwm->atoms[TARGETS],
xwm->atoms[WL_SELECTION],
selection->timestamp
);
This means ask the selection owner to write its TARGETS for the
`selection->atom` selection (one of PRIMARY, CLIPBOARD, DND_SELECTION)
to `selection->window`'s WL_SELECTION atom.
However, `selection->window` is shared for both PRIMARY and CLIPBOARD
selections, and WL_SELECTION is used as the target atom in both cases.
So, there's a race when both selections change at the same time.
The CLIPBOARD selection might support mimetypes {A, B, C}, and the
PRIMARY only {A, B}. If the ConvertSelection requests/responses "cross
on the wire", so to speak, wlroots can end up believing that the PRIMARY
selection also supports C.
A Wayland client may then ask for the PRIMARY selection in C format,
which will fail with "convert selection failed".
This commit fixes this by using a separate window for PRIMARY and
CLIPBOARD target requests, so that WL_SELECTION can be used as the
target atom in both cases.
|
|
This commit introduces logic for using a new X11 window for each
incoming transfer, rather than having a global window for each selection
source.
This eliminates a whole class of bugs involving multiple concurrent
incoming transfers.
For now, we retain the outgoing transfer queue, and the selection
source-specific windows to support it. Source-specific windows are no
longer used in the incoming path, and will be removed in a future PR.
Refs #1497.
|
|
Make (config, context)_attribs const just to be on the safe side.
|
|
It turns out wl_event_source_check is not enough to guarantee that the
remote wl_display will be flushed after we queue requests. We need to
explicitly flush, just like we do in our X11 code.
References: https://gitlab.freedesktop.org/wayland/wayland/-/issues/187
|
|
This is never used.
|