Age | Commit message (Collapse) | Author |
|
This commit makes more output properties (mode, enabled, scale and transform)
atomic. This means that they are double-buffered and only applied on commit.
Compositors now need to call wlr_output_commit after setting any of those
properties.
Internally, backends still apply properties sequentially. The behaviour should
be exactly the same as before. Future commits will update some backends to take
advantage of the atomic interface. Some backends are non-atomic by design, e.g.
the X11 backend or the legacy DRM backend.
Updates: https://github.com/swaywm/wlroots/issues/1640
|
|
The documentation for wayland-server.h says:
> Use of this header file is discouraged. Prefer including
> wayland-server-core.h instead, which does not include the server protocol
> header and as such only defines the library PI, excluding the deprecated API
> below.
Replacing wayland-server.h with wayland-server-core.h allows us to drop the
WL_HIDE_DEPRECATED declaration.
|
|
When we move from one surface to another we ought to handle leave
for the old one but also send enter for the new one.
|
|
set_maximized and set_fullscreen calls can come before the view is
constructed and before its signal handlers are registered.
|
|
|
|
|
|
These are undocumented, outdated protocols that have a better wlr-protocols
equivalent.
|
|
|
|
|
|
We want to damage the whole output in this mode. However if we overwrite the
damaged region after it's useless.
Fixes: 57d32d03a87ab4a74230294cefc5fa8b1e28c96d
|
|
We only need to damage the parts of the screen that changed since last frame,
we don't need to accumulate damage from previous buffers.
We still need to re-render the accumulated damage.
Fixes https://github.com/swaywm/wlroots/issues/1665
|
|
|
|
This new name makes more sense, since it is a request from the backend to get
a new frame. In the future a commit may not convey a new frame.
|
|
wlr_output_damage_make_current has been renamed to
wlr_output_damage_attach_render, since it's just a wrapper for
wlr_output_attach_render.
wlr_output_damage_swap_buffers has been removed completely. Instead,
wlr_output_damage now listens to successful wlr_output commits and updates its
internal state accordingly.
|
|
Also fix rootston setting the preferred mode when another mode is specified in
the config file.
|
|
The deleted includes are redundant, because other headers will include
the necessary files. Additionally, they cause build failures, because
including EGL/egl.h or EGL/eglext.h directly, instead of through
wlr/render/egl.h or wlr/render/interface.h, will mean that
MESA_EGL_NO_X11_HEADERS will not have been defined, and so the EGL
headers will attempt to pull in unnecessary X11 headers that may not
exist on the system.
For the headers produced by glgen.sh, the includes couldn't simply be
deleted, because no other header would include the EGL headers. Neither
wlr/render/egl.h or wlr/render/interface.h felt appropriate to include,
so I opted instead to copy the MESA_EGL_NO_X11_HEADERS definition before
the EGL includes.
|
|
We should also be careful when using wlr_output_layout_get_box(), since
it may return null.
|
|
Fixes https://github.com/swaywm/wlroots/issues/1610
|
|
|
|
|
|
|
|
|
|
|
|
Broken by 62fd03a7beb18da6c4a5929e38739cf2199dfa79
Closes: #1631
|
|
Rename lid_switch to switch_device to disambiguate lid and tablet mode switches.
|
|
Let the compositor set it. This allows for multiple Xwayland instances to run
at the same time.
Fixes https://github.com/swaywm/wlroots/issues/1442
|
|
|
|
|
|
|
|
|
|
This implements rootston surface iterators to ease rendering, sending
frame/presentation events and accumulating damage.
|
|
|
|
Refactor drag-and-drop
|
|
|
|
|
|
|
|
OVERLAY layers
Input order didn't match rendering order, causing pointer events to go into surfaces
that were completely obscured by others (like a LAYER_TOP panel behind a fullscreen
window).
|
|
It doesn't make much sense and actually breaks stuff when using layer-shell
(fullscreen window gets resized, but it's still fullscreen, leading to black
bars where the shell layers are behind).
|
|
|
|
|
|
primary-selection-v1: copy from gtk-primary-selection
|
|
Fixes https://github.com/swaywm/wlroots/issues/1414
|
|
|
|
|
|
|
|
|
|
This protocol relays touchpad gesture events produced by libinput to
supporting clients (e.g. Evince, Eye of GNOME).
|
|
Frame events group logically connected pointer events. It makes sense to make
the backend responsible for sending frame events, since once the events are
split (ie. once the frame events are stripped) it's not easy to figure out
which events belongs to which frame again.
This is also how Weston handles frame events.
Fixes https://github.com/swaywm/wlroots/issues/1468
|
|
This makes compositors able to block and/or customize set_selection requests
coming from clients. For instance, it's possible for a compositor to disable
rich selection content (by removing all MIME types except text/plain). This
commit implements the design proposed in [1].
Two new events are added to wlr_seat: request_set_selection and
request_set_primary_selection. Compositors need to listen to these events and
either destroy the source or effectively set the selection.
Fixes https://github.com/swaywm/wlroots/issues/1138
[1]: https://github.com/swaywm/wlroots/issues/1367#issuecomment-442403454
|
|
|