Package: mutter / 3.38.6-2~deb11u2

Metadata

Package Version Patches format
mutter 3.38.6-2~deb11u2 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
wayland subsurface Check for parent actor before unparent.patch | (download)

src/wayland/meta-wayland-subsurface.c | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 wayland/subsurface: check for parent actor before unparenting

No need to assume the actor still has a parent. This silences warnings
in normal builds and prevents a crash in fully optimized ones.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958>

Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/1892
wayland subsurface Handle node unlinking on parent destro.patch | (download)

src/wayland/meta-wayland-subsurface.c | 1 1 + 0 - 0 !
src/wayland/meta-wayland-surface.c | 16 1 + 15 - 0 !
2 files changed, 2 insertions(+), 15 deletions(-)

 wayland/subsurface: handle node unlinking on parent destroyed

It concerns subsurface state and the subsurface already listenes
for the parent to get destroyed.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958>

Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/1892
window actor wayland Remove subsurface actors on dispose.patch | (download)

src/compositor/meta-window-actor-wayland.c | 25 25 + 0 - 0 !
1 file changed, 25 insertions(+)

 window-actor/wayland: remove subsurface actors on dispose

Destroying the window actor also destroys all its children. Subsurfaces
however may get reused. If the client did not unparent them before
the window actor got destroyed, they will be left without actor
which results in a crash.

Unparent all actors of subsurfaces on dispose to avoid that.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1958>

Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/1892
xwayland Fix condition for queuing a window to META_QUEUE.patch | (download)

src/wayland/meta-xwayland-surface.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 xwayland: fix condition for queuing a window to
 META_QUEUE_CALC_SHOWING

This logic was changed by accident in df642eb15. The change caused every
Xwayland window to be queued to META_QUEUE_CALC_SHOWING on every surface
commit. As a result, X11 window management events, including _NET_WM_STATE,
were dispatched at clients on every single frame.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2032>

(cherry picked from commit 98d5aa159e0eb9f433b211044ce30cd612d42734)

Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/1955
wayland data offer Accept final preferrence of drop desti.patch | (download)

src/wayland/meta-wayland-data-offer.c | 4 3 + 1 - 0 !
1 file changed, 3 insertions(+), 1 deletion(-)

 wayland/data-offer: accept final preferrence of drop destination

Quoting the spec for `wl_data_device::drop`:
> If the resulting action is "ask", the action will not be considered
> final. The drag-and-drop destination is expected to perform one last
> wl_data_offer.set_actions request, or wl_data_offer.destroy in order
> to cancel the operation.

We did not respect the action choosen by the drop destination when
it called `wl_data_offer::set_actions` after `wl_data_device::drop`
if a user override was still active. This eventually resulted in
a protocol error in `wl_data_offer::finish`, as the current action
could still be `ask`.

Fix this by only allowing a user override to `ask` before `drop` is
called, thus making sure the final `set_actions` preference is
honored.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2043>

(cherry picked from commit 33b834c43373b715219d1b911813b59b2d0e2477)

Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/1952
surface actor Fix unobscurred_fraction calculation.patch | (download)

src/compositor/meta-surface-actor.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 surface-actor: fix unobscurred_fraction calculation

This calculation wrongly applied a `x2 - x1` pattern.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2169>

(cherry picked from commit 6204769fdb8a048ee23f49be0ca532f8ff1d557a)

Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/1971
wayland surface Switch order for calculating surface dama.patch | (download)

src/wayland/meta-wayland-surface.c | 24 11 + 13 - 0 !
1 file changed, 11 insertions(+), 13 deletions(-)

 wayland/surface: switch order for calculating surface damage

Process surface damage in the right order, simplifying the
calculations.

No functional change intended.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168>

(cherry picked from commit f4717d0ac51625d271f3a8cdc6804fa9461bc927)

wayland surface Use correct default viewport for surface .patch | (download)

src/wayland/meta-wayland-surface.c | 17 15 + 2 - 0 !
1 file changed, 15 insertions(+), 2 deletions(-)

 wayland/surface: use correct default viewport for surface damage

If no viewport is set, the neutral viewport is the surface size
without viewport destination size applied - i.e. transform and
scale applied to the buffer size. Change it accordingly, giving
us the same values we'd return in `get_width` in this case.

As result, this only changes cases where a viewport destination
size but no viewport source rectangle is set.

The change fixes exactly such cases, e.g. the Gstreamer Wayland
sink. Can be tested with: `gst-play-1.0 --videosink=waylandsink`.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168>

(cherry picked from commit c1668116959664f04e509130e76a18d55429ca65)

wayland surface Do not uncoditionally process surface dam.patch | (download)

src/wayland/meta-wayland-surface.c | 111 58 + 53 - 0 !
1 file changed, 58 insertions(+), 53 deletions(-)

 wayland/surface: do not uncoditionally process surface damage

Most clients nowadays switched to buffer damage, most notably Mesa
and Xwayland. Thus lets avoid the extra cost of allocating three
`cairo_region_t`s and doing some calculations.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2168>

(cherry picked from commit c498ae337f57a67c6e678d549cf9a8070c32f251)

monitor manager Don t include generated code in header fi.patch | (download)

src/backends/meta-monitor-manager-private.h | 6 3 + 3 - 0 !
src/backends/meta-monitor-manager.c | 2 2 + 0 - 0 !
2 files changed, 5 insertions(+), 3 deletions(-)

 monitor-manager: don't include generated code in header file

Meson doesn't seem to handle depending on generated headers, at least
when those headers are pulled in indirectly via another header file.

Luckily, we don't actually need to include the generated D-Bus boiler
plate in meta-monitor-manager-private.h, since the MetaMonitorManager
type no longer is based on the D-Bus service skeleton.

So, by moving the inclusion of the generated D-Bus header file into
meta-monitor-manager.c, we should hopefully get rid of the sporadic
build issues.

Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/1682
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1819>
theme use gtk_render_icon_suface to paint button icon.patch | (download)

src/ui/theme.c | 18 4 + 14 - 0 !
1 file changed, 4 insertions(+), 14 deletions(-)

 theme: use gtk_render_icon_suface to paint button icon

This will properly take care of the icon transformations
and of the shadow.

Fixes #100

Bug: https://gitlab.gnome.org/GNOME/mutter/issues/100
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/mutter/+bug/1764558
theme load icons as Gtk does with fallback and RTL suppor.patch | (download)

src/ui/theme.c | 32 26 + 6 - 0 !
1 file changed, 26 insertions(+), 6 deletions(-)

 theme: load icons as gtk does with fallback and rtl support

meson add back default_driver option.patch | (download)

cogl/cogl-config.h.meson | 3 3 + 0 - 0 !
cogl/meson.build | 4 4 + 0 - 0 !
meson.build | 3 3 + 0 - 0 !
meson_options.txt | 6 6 + 0 - 0 !
4 files changed, 16 insertions(+)

 meson: add back default_driver option

In autotools it was possible to pass the --with-default-driver option
to force the usage of a specific cogl driver at build time.

Expose this functionality in meson as well

debian/synaptics support.patch | (download)

src/backends/x11/meta-input-settings-x11.c | 155 141 + 14 - 0 !
src/backends/x11/meta-seat-x11.c | 12 10 + 2 - 0 !
2 files changed, 151 insertions(+), 16 deletions(-)

 backends/x11: support input-synaptics, if present.

Add support for configuring the Xorg synaptics touchpad driver.

Turns out it's very simple to support both libinput and synaptics
simultaneously, both under the heading of XI2.

Bug-Ubuntu: https://launchpad.net/bugs/1686081
debian/tests Tag unstable tests as flaky.patch | (download)

src/tests/clutter/conform/meson.build | 6 5 + 1 - 0 !
src/tests/meson.build | 2 1 + 1 - 0 !
2 files changed, 6 insertions(+), 2 deletions(-)

 tests: tag unstable tests as flaky

Then test runners can run these ones non-fatally.

This is Debian-only: for upstream these tests should be fixed.