Age | Commit message (Collapse) | Author |
|
render: fix meson including libdrm
|
|
|
|
Fix libdrm includes
|
|
This removes any assumptions about how the libdrm headers are installed,
and uses the pkg-config include directories as we're "supposed to".
This only adds a partial dependency, since we don't actually need to
link against libdrm.
|
|
Fix headless backend
|
|
Fix include path for (libdrm/)drm_fourcc.h
|
|
This PR broke a private nixpkgs definition I have for wlroots: https://github.com/swaywm/wlroots/pull/1304
It is fixed by changing `#include <drm_fourcc.h>` to `#include <libdrm/drm_fourcc.h>`, which follows what is already done in the dmabuf example.
|
|
It was only working if you ran it underneath an already-working Wayland
compositor. Running with the headless backend on the API would break.
|
|
text-input: Accept disable requests
|
|
The disable signal on text-input objects must not be ignored. It is only sent when the previous state was enabled.
|
|
Support older wlr_linux_dmabuf_v1 clients
|
|
xwayland/xwm: make hints->input default to true
|
|
An X11 client can leave the hints->input WM hint unspecified,
by not setting the XCB_ICCCM_WM_HINT_INPUT flag in hints->flags.
In that case, we should assume a sane default.
Make the hint default to true, so that clients which do not specify
the hint, like mupdf, still get keyboard focus.
This should fix swaywm/sway#2231
|
|
If a client uses an older version of the dmabuf protocol, use the
`formats` event instead of `modifiers` (since that didn't exist in older
versions).
With a bit of necessary guessing, support dmabuf importing even when
EGL_EXT_image_dma_buf_import_modifiers isn't present instead of
failing up front.
|
|
text-input: fix releasing destroy handlers
|
|
|
|
|
|
|
|
|
|
Support input method and text input
|
|
Include wlr/config.h in x11.h
|
|
This fixes a warning from the linker when using LTO, due to mismatched
types.
|
|
backend/drm: don't reset conn->pageflip_pending in drm_connector_cleanup
|
|
If a pageflip is pending before cleanup, it's still pending after. This
is used line 1177: drm_connector_cleanup is called and
conn->pageflip_pending is checked afterwards.
Fixes #1297
|
|
output: remove idle_frame event source when destroying output
|
|
backend/drm: set drmEventContext version to 2
|
|
As per [1] set drmEventContext version to 2, since wlroots does not use the
page_flip_handler2.
[1]: https://s-opensource.org/2017/04/12/libdrm-event-handling-youre-probably-wrong/
|
|
The compositor acts as a relay between applications using the text-input protocol and input methods using the input-method protocol.
This change implements the basic but useful support for input-method, leaving out grabs as well as popups.
|
|
Implemented basic input method functionality. Not included: popups, grabbing.
|
|
wayland-scanner >= 1.15.0 accepts foreign struct references, necessary in protocols like zwp-input-method-v2
|
|
|
|
This prevents the idle event to be activated on a destroyed
output.
This also makes the backend responsible for free-ing modes, as it
is the one allocating them and adding them to the list. Note that
the DRM backend (the only one using modes) already frees them.
|
|
rootston: export XCURSOR_SIZE and XCURSOR_THEME
|
|
backend/drm: add support for the link-status property
|
|
These can be used by toolkits (currently Qt) to choose a default
cursor theme and size. Note that this isn't a perfect solution:
- Per-seat configuration isn't possible
- It's not possible to set the default image
- Live config reload isn't possible
But it's easy to implement and simple. To fix these remaining
issues a separate protocol would be needed.
|
|
meson.build: require logind v237
|
|
Commit 7b523884249f904f45b1e9a7eae8152c2ac1248d uses a function added in logind v237
|
|
backend/drm: better handle GPUs without CRTCs
|
|
|
|
|
|
output: don't trigger a frame immediately in schedule_frame
|
|
|
|
This desynchronizes our rendering loop with the vblank cycle.
In case a compositor doesn't swap buffers but schedules a frame,
emitting a frame event immediately enters a busy-loop.
Instead, ask the backend to send a frame when appropriate. On
Wayland we can just register a frame callback on our surface. On
DRM we can do a no-op pageflip.
Fixes #617
Fixes swaywm/sway#2748
|
|
Revert "Prevent excessive frame events when compositor doesn't swap buffers"
|
|
|
|
Prevent excessive frame events when compositor doesn't swap buffers
|
|
When we send an output frame event, we should not assume that the
compositor is going to call wlr_output_swap_buffers in response to it.
If the compositor does not swap the buffers, the idle event source still
exists and is executed every time the Wayland event loop becomes idle,
which means we send frame events repeatedly until the buffers are
swapped.
This moves the removal of the idle event source out of
wlr_output_swap_buffers and into wlr_output_send_frame, where it is
guaranteed to be removed.
|
|
Implement presentation-time
|
|
|
|
|