Age | Commit message (Collapse) | Author |
|
This allows us to have a single number to update when doing a release.
This drops WLR_VERSION_API_* definitions.
|
|
|
|
|
|
|
|
Previously, creating a keyboard group without any keymap set would
result in an error:
Device keymap does not match keyboard group's
|
|
This would happen if initializing the renderer fails. Instead, we just
mark the output as disabled.
References: https://github.com/swaywm/sway/pull/4917
|
|
|
|
|
|
rootston isn't part of wlroots anymore.
|
|
There was an issue in 0.51.1 and earlier, where lists of dependencies
and disablers weren't acting like they should. Instead of disabling a
build, it would error out instead.
Changing this logic to work around it is annoying, so just bump the
version instead.
|
|
Keeping textures bound results in hard-to-debug situations where some GL
operations incorrectly affect the texture.
|
|
Users can just pass EGL_DEFAULT_DISPLAY themselves.
|
|
|
|
Users interested in remote access to wlroots compositors should use
wayvnc:
https://github.com/any1/wayvnc
|
|
Previously, an error on the remote Wayland display would result in an
infinite loop priting:
2020-01-09 13:39:03 - [wayland] Source dispatch function returned negative value!
2020-01-09 13:39:03 - [wayland] This would previously accidentally suppress a follow-up dispatch
This happens when the remote compositor disconnects the client because
of a protocol error, for instance.
Handle wl_display_dispatch and wl_display_dispatch_pending returning -1
by terminating the local display and printing an error.
|
|
Previously, we just assumed submitting a new frame would make the
compositor release the current one. This isn't always the case, for
instance Sway retains old buffers when a transaction is pending. This
resulted in synchronization issues with clients writing in
front-buffers.
Fix this by un-referencing a wlr_buffer when the parent compositor sends
wl_buffer.release.
Tested by running a fullscreen mpv instance in Sway with the Wayland
backend.
|
|
|
|
|
|
Although currently this problem is present in only Steam, and it is
actually a client bug.
|
|
It turns out that scrolling doesn't work unless this value is set somewhere.
|
|
This got removed in [1]. I probably messed up the rebase.
[1]: https://github.com/swaywm/wlroots/pull/1797/files#diff-3065f86e6de87d143d4a7673a8ee3a2d
Fixes: 5d1ba0f44687 ("output: re-introduce atomic mode, enabled, scale and transform")
|
|
|
|
Add a wlr_renderer.rendering bool, set it to true between
wlr_renderer_begin() and wlr_renderer_end(). Assert we're rendering when
calling functions that render.
|
|
When running wlroots compositors with Xwayland executable bits
unset, if DISPLAY is set to the display number wlroots has set
up, then X and gtk clients (at least) hang when they are ran.
X clients should fail with an error and exit while gtk clients
should fall back to wayland backend and run correctly. This is
because wlroots opened sockets for Xwayland but wasn't closing
them if Xwayland failed to start.
|
|
|
|
This fixes a segfault in drm_connector_set_mode (mode = NULL).
This happens because we set wlr_output.enabled to true if the connector
is attached to the CRTC. When the user disables an output in the
wlroots-based compositor, switches to another VT (enabling the output),
then switches back, wlroots sets wlr_output.enabled to true but
wlr_output.current_mode is NULL.
We should consider not reading properties from KMS after a TTY switch,
disabling all connectors. However this may result in flickering (outputs
being disabled then re-enabled).
Closes: https://github.com/swaywm/wlroots/issues/1874
|
|
- Regular clients shouldn't care about modes
- Modes exposed are missing metadata such as aspect-ratio, interleaved, etc
- Modes exposed cannot be pruned [1]
- wlr-output-management provides a better API for privileged clients
[1]: https://gitlab.freedesktop.org/wayland/wayland/issues/92
Closes: https://github.com/swaywm/wlroots/issues/1099
|
|
Most resources must not be NULL. Make it so callers need to check for
NULL explicitly. This makes it clearer in the handlers code that the
NULL wl_resource case needs to be handled, and allows callers to make a
difference between a NULL wl_resource and an inert resource.
|
|
Closes: https://github.com/swaywm/sway/issues/4834
Closes: https://github.com/swaywm/wlroots/issues/1890
|
|
While at it, choose the preferred mode instead of the last one.
|
|
References: https://github.com/swaywm/wlroots/issues/1780#issuecomment-518938390
|
|
In case the pending value is the same as the current value, clear the
bit from pending.committed.
|
|
This saves one modeset in case the previous mode is different.
|
|
This reverts commit 01f903874b7e27539488fad7f31476d5bcbc6ac9 and re-applies
commit ee5f98ad49fed0439f3313ec685307831d1d1d05.
Updates: https://github.com/swaywm/wlroots/issues/1640 (Atomic output updates issue)
See also: https://github.com/swaywm/wlroots/pull/1762 (Atomic output updates original PR)
See also: https://github.com/swaywm/wlroots/issues/1780 (Issue caused by atomic output updates)
See also: https://github.com/swaywm/sway/issues/4419 (Issue caused by atomic output updates)
See also: https://github.com/swaywm/wlroots/pull/1781 (Revert PR)
|
|
This fixes a memory leak the refresh_state function for
wlr_keyboard_group. The event struct was being dynamically allocated and
never free'd. This changes it to a static allocation.
|
|
Unfortunately, the description isn't mutable yet for this protocol [1].
[1]: https://github.com/swaywm/wlr-protocols/issues/67
|
|
Since [1], the xdg-output description is mutable. Listen to output
description changes and send the new output description when updated.
[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/commit/048102f21ad3783f64c4996704b07a13a010fd19
|
|
wlr_output.description is a string containing a human-readable string
identifying the output. Compositors can customise it via
wlr_output_set_description, for instance to make the name more
user-friendly.
References: https://github.com/swaywm/wlroots/issues/1623
|
|
Closes: https://github.com/swaywm/wlroots/issues/1255
|
|
This reverts commit 35bc3e662a34fe92a3de4e3768dc976f8ac2c242.
Per [1], the dependency has been re-added and we shouldn't need to
explicitly install it anymore.
[1]: https://bugs.archlinux.org/task/64914
|
|
This is insanely fruststating. Since it works off of currently committed
git files, if you ever remove anything, your build will fail until you
commit it.
It doesn't even belong in the build system anyway, as it's only part of
an individual's specific workflow. Use for own scripts for your own
workflow. Go use some git hooks to generate this or something.
|
|
Bumps minimum version to 0.51.0
- Remove all intermediate static libraries.
They serve no purpose and are just add a bunch of boilerplate for
managing dependencies and options. It's now managed as a list of
files which are compiled into libwlroots directly.
- Use install_subdir instead of installing headers individually.
I've changed my mind since I did that. Listing them out is annoying as
hell, and it's easy to forget to do it.
- Add not_found_message for all of our optional dependencies that have a
meson option. It gives some hints about what option to pass and what
the optional dependency is for.
- Move all backend subdirectories into their own meson.build. This
keeps some of the backend-specific build logic (especially rdp and
session) more neatly separated off.
- Don't overlink example clients with code they're not using.
This was done by merging the protocol dictionaries and setting some
variables containing the code and client header file.
Example clients now explicitly mention what extension protocols they
want to link to.
- Split compositor example logic from client example logic.
- Minor formatting changes
|
|
Previously, the path of TTY is generated using snprintf with %d format.
It works with TTY 1 to 10, but fails with TTY with greater number
because the number used in the name is in base 32 instead of base 10.
Since there is no standard function to convert a number to a string with
a custom base, this commit adds a function to do it.
Fixes: https://github.com/swaywm/wlroots/issues/1854
|
|
Some extensions are only advertised by the EGL implementation with a
non-zero EGLDisplay. That's the case when the extension can only be
enabled when the hardware/driver supports it for instance.
Instead of checking for all extensions without a display, check only for
EGL_EXT_platform_base and EGL_KHR_debug which are used before
eglGetDisplay. Check for all other extensions when we have a display.
Closes: https://github.com/swaywm/wlroots/issues/1955
|
|
Arch Linux maintainers are still figuring out whether they should ask
people to explicitely install it or make it a dependency of libxcb again
[1]. In the meantime, add it as an explicit dependency. I'll revert
this patch if they decide otherwise.
[1]: https://bugs.archlinux.org/task/64914
|
|
While printing the supported output modes, annotate the preferred mode.
|
|
Remove glapi.sh code generation, replace it with hand-written loading
code that checks extension strings before calling eglGetProcAddress.
The GLES2 renderer still uses global state because of:
- {PUSH,POP}_GLES2_DEBUG macros
- wlr_gles2_texture_from_* taking a wlr_egl instead of the renderer
|
|
Fixes GTK application crashes
|
|
`mode` points to an invalid pointer (head of the list) when the loop
stops.
Closes: https://github.com/swaywm/sway/issues/4717
|
|
If wlr_buffer_create fails, keep the previous buffer.
|