commit 09027db925643132c20c24ed5ec9af36fa677a2d
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Mar 5 15:58:53 2026 +0800
Bump dependencies to match upstream release 50.rc
commit 544586fe9f7e1aee5fbd8e1071cdddcaa0f26bd9
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Mar 5 15:42:14 2026 +0800
debian/libmutter-18-0.symbols: Update symbols for 50.rc
commit 7c32411d47d282fe7ae10e4a21394780260955ad
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Mar 5 15:34:37 2026 +0800
Refresh patch workarounds/tests-Skip-thread-priority-test.patch
commit 33265a279a6ce7042150f0224cae2b01c99a9038
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Mar 5 15:32:22 2026 +0800
debian/changelog: Add an entry for 50~rc
commit c4248bb347da5a45d70ea80ae3cfde9c4cdd8de3
Merge: b2958a33 4418cab6
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Mar 5 15:30:42 2026 +0800
Merge tag 'upstream/50_rc' into debian/latest
commit b2958a33cba90f27fc44062f665a1913268a319a
Author: Simon McVittie <smcv@debian.org>
Date: Mon Feb 16 21:57:03 2026 +0000
Update changelog
commit c5db3682c88c41e85fc6bef5b7d70a18450e78c0
Merge: e8624c1c 491b0863
Author: Simon McVittie <smcv@debian.org>
Date: Mon Feb 16 21:56:29 2026 +0000
Merge branch 'debian/forky' into debian/latest
commit 491b08631fab3a220ecba83d972f39a26fc04e51
Author: Simon McVittie <smcv@debian.org>
Date: Mon Feb 16 20:00:44 2026 +0000
Release to unstable
commit 8534528a19d6abcaf595455c48cadb7c9d4f50d1
Author: Simon McVittie <smcv@debian.org>
Date: Sun Feb 15 17:21:15 2026 +0000
Update changelog
commit 8c33a8795f095e24aaa0c5da954d550cd66907b1
Author: Simon McVittie <smcv@debian.org>
Date: Sun Feb 15 17:20:23 2026 +0000
d/libmutter-17-0.symbols: Update
commit d6e94ec8f1dab55fd4e44a6fda8a4ad7a157a0fa
Author: Simon McVittie <smcv@debian.org>
Date: Sun Feb 15 17:12:16 2026 +0000
New upstream release
commit ce9e04ca847ab8f00255e1e5174174aae22ab37a
Merge: 2dba0ac0 658345be
Author: Simon McVittie <smcv@debian.org>
Date: Sun Feb 15 17:12:16 2026 +0000
Update upstream source from tag 'upstream/49.4'
Update to upstream version '49.4'
with Debian dir c9e625239f13abd0a8b31e0195963a29dcdd3663
commit 658345beb9ef4c5f53e9d7c3e2170c06f35fd882
Merge: 4f53b444 e6379ecf
Author: Simon McVittie <smcv@debian.org>
Date: Sun Feb 15 17:12:02 2026 +0000
New upstream version 49.4
commit e6379ecf07e7962d796fc057c50d0e6b2d803b7e
Author: Florian Müllner <fmuellner@gnome.org>
Date: Thu Feb 5 16:47:05 2026 +0100
Bump version to 49.4
Update NEWS.
commit d2b8e1bb922113bf29d11a2f002a5ece16196025
Author: Carlos Garnacho <carlosg@gnome.org>
Date: Thu Feb 5 15:40:14 2026 +0100
wayland: Fix possible invalid reads when terminating popup grabs
There is a bit of an egg-and-chicken problem between a popup grab,
and the surfaces it applies to. Finishing a grab will iterate through
all popups, and free the MetaWaylandPopupGrab struct on the last one,
while the MetaWaylandPopupGrab list of popup surfaces is being iterated.
In order to fix the possible invalid reads (and crashes) resulting from
this, hook into the return value of meta_wayland_popup_surface_finish()
to know we should break the loop.
While at it, also move another place to using this return value, as
it's checking for the same preconditions as the ::finish() implementation
underneath.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4886>
(cherry picked from commit d5981ff119402b420c61a8302aa3f0e87805284c)
commit dbfa2d19c881101a8568d97294eb390d6bf19157
Author: Carlos Garnacho <carlosg@gnome.org>
Date: Thu Feb 5 15:38:24 2026 +0100
wayland: Notify grab finish from MetaWaylandPopupSurfaceInterface::finish
Return a boolean value, expressing whether the grab was terminated together
with the popup surface, or whether no action was taken.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4886>
(cherry picked from commit b6a5aff28e47c624670881a67fdd2668942d55d9)
commit 77de39e3f706dba6c03408f54b2a3ce02ddc2253
Author: Jonas Ådahl <jadahl@gmail.com>
Date: Fri Oct 10 10:08:05 2025 +0200
wayland/popup: Handle popups dismissing other popups when finishing
We'd dismiss all popups in the list, but didn't handle the case where
one popup indirectly dismissed another, meaning we'd dismissing it
again, after it was freed. Handle this by going through the list only
looking at the first element, until it's empty.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4843>
(cherry picked from commit 503e9d93aecf8a3d95a28eb410b883aeaae942ee)
commit 8fee00136259be8e1fc93496e4656ca2de3c105d
Author: Jonas Ådahl <jadahl@gmail.com>
Date: Tue Dec 9 16:43:49 2025 +0100
screen-cast-stream-src: Log negotiated dimension and framerate
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4881>
commit 7bc3df0e740b0594a188142e81705b81d8bbbf21
Author: Jonas Ådahl <jadahl@gmail.com>
Date: Tue Dec 9 16:42:25 2025 +0100
screen-cast-stream-src: Only specify framerate range if there is any
When recording a monitor with no set refresh rate, don't set the
maxFramerate parameter, as that may confuse negotiation. More precisely,
a rate of 0/1 is considered zero, which is smaller than e.g. 60/1, but
shouldn't be considered as such.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4881>
commit 6d02b355b1c6ad045689e76e4b27ab4f3a3b9ea7
Author: Jonas Ådahl <jadahl@gmail.com>
Date: Tue Dec 9 16:39:34 2025 +0100
screen-cast-stream-src: Set framerate params in push_format_object()
The framerate is always the same (variable), so only specify the range.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4881>
commit e25569e1bb9bb8c9ed8377027f03e5be3cb930ba
Author: Sebastian Keller <skeller@gnome.org>
Date: Tue Jan 27 17:24:48 2026 +0100
backends: Clarify meta_idle_monitor_add_idle_watch() documentation
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4422>
(cherry picked from commit f8ae5b4732a4167402e321b94f0b98a83b631e5c)
commit dc5b818fc94ac04b5052237e224293f3e6bdc426
Author: Sebastian Keller <skeller@gnome.org>
Date: Fri Jan 23 19:19:15 2026 +0100
backends: Allow ignoring previous idle time when creating idle watches
This is useful for things like break reminders that need to know that a
user has been idle for a specified time from when the reminder was
triggered rather than from when the user was idle. The user might have
been watching a video which would have counted to the previous idle time
if the watcher ignores inhibitors.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4422>
(cherry picked from commit 3f3bea1d4a6f2cfd99f4c2b4ceaf316eeaed6059)
commit d075bf68975a9e5b2bacd88bf8c4dd7135cb0e96
Author: Sebastian Keller <skeller@gnome.org>
Date: Tue May 6 01:23:05 2025 +0200
backends: Allow creating uninhibitable idle watches
Some idle watches are really only interested in whether there is user
activity, but not if there are any inhibiting clients. An example for
this would be the break timer in gnome-shell which should not be
affected by inhibitors.
Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8378
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4422>
(cherry picked from commit 02c1c9edeab5f16ca2e7b499e98380b0cf31b93f)
commit ba4c9b488168d816ea904cb90539b371aae283d1
Author: mohansur <MohanSundaram.R@amd.com>
Date: Tue Feb 3 11:07:26 2026 +0530
window: Remove obsolete fullscreen coverage check for O-R windows
Fullscreen coverage check for override-redirect windows queued from
meta_window_constructed() are no longer needed now that the check is
queued after update_top_window_actor()
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4876>
(cherry picked from commit e55185439b718b3b6922d7ab591d4144a87dc997)
commit ddcd3fdcffa9bc962b10644d25c57ffc2d9b5492
Author: mohansur <MohanSundaram.R@amd.com>
Date: Sat Jan 31 19:30:04 2026 +0530
compositor: Queue for fullscreen check after updating top window actor
A regression introduced in https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4820 caused fullscreen coverage
checks to run with an out-of-date top window actors.
A fullscreen check after updating top window actor would rectify this.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4571
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4876>
(cherry picked from commit 8e6156c0c7b43d1e373b9717eb829ec639f17dc8)
commit 379da7870f6815cc869bea742d7c4a5ab613845b
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Sat Feb 7 12:10:19 2026 +0100
clutter/color-state-params: Disable tone mapping with HDR on for now
The current tone mapping implementation doesn't work correctly with
the current blending colour space. Luminance mapping would need to be
handled separately from the actual tone mapping.
Tone mapping with HDR on doesn't really make sense anyway while we're
always using the full PQ luminance range up to 10000 nits, which no real
display can actually reproduce.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4591
(Cherry picked from commit c3a5809c55442d0dcbf8c7d1623be491af46ccc7)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4902>
commit e8624c1cddafa5bbc19163d58e47b6213e3faae1
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date: Sun Feb 8 05:12:51 2026 -0500
releasing package mutter version 50~beta-2
commit 12c2210c1eb2088128cbd3f8adc95b86a4bb3771
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date: Sun Feb 8 05:12:00 2026 -0500
Fix i386 build
commit abb346f05e1e0bde22ef564299ea0dbdc1fe68d1
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date: Sat Feb 7 20:12:46 2026 -0500
Add loong64 to the list of architectures where sysprof is available
commit 4a1e0559d9f33357e4d84b1760f3f3353e5743dc
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date: Fri Feb 6 12:18:12 2026 -0500
releasing package mutter version 50~beta-1
commit b1d42bdf33b8f6783ba2d1e5be5978a6e29c8d21
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date: Fri Feb 6 12:17:17 2026 -0500
Bump Standards Version to 4.7.3
commit 57fb8b22865517a724f579c5b02f09716540aaeb
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Fri Feb 6 15:06:54 2026 +0800
debian/control: libmutter now requires mutter-common >= 50~beta
This is because of c36bb37a
("settings: Introduce way to override the calculated Xwayland scale")
A sad situation that didn't exist in 50~alpha and difficult to avoid
because the g_settings_ API is designed to *crash* instead of letting
you detect and handle missing keys.
commit d4f11dbbe256a238fb37592e9703886053c53350
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Feb 5 13:48:54 2026 +0800
Update debian/*.symbols for 50.beta
commit 59b0c2a2f3c1f6899359a8c4b112be0632355f0b
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Feb 5 13:28:51 2026 +0800
debian/control: Add new Build-Depends: libxkbregistry-dev
commit 6a202540f6a2f8b66e964467a5dfc37b2e3911ca
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Feb 5 13:25:27 2026 +0800
Refresh patches
commit 813ed34f0f01fcbf0699d11b68b190a472ba27ff
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Feb 5 13:23:56 2026 +0800
Drop upstreamed tests-test-client-Sync-display-before-closing-it.patch
commit 004c89472db91e4a7c49da5a076080a06858c6a2
Merge: 1d196f1c 88396cec
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Thu Feb 5 13:21:39 2026 +0800
Merge tag 'upstream/50_beta' into debian/latest
commit 84e5433bd4b05f3a3f5f4913211afaa2f5f40c4b
Author: Daniel Rusek <mail@asciiwolf.com>
Date: Wed Feb 4 23:20:40 2026 +0000
Update Czech translation
commit 7a74e7c7bf53f608be6ab4b07fce0b0ad1aecc4a
Author: Robert Mader <robert.mader@collabora.com>
Date: Mon Feb 2 15:49:43 2026 +0100
clutter/color-state-params: Clamp BT1886 input values
In line with the PQ shaders. This fixes artifacs/banding issues, making
the output visually match that of Mesa GL/VK shaders or display engines
much closer.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4878>
(cherry picked from commit 0135cce6db41c4775f6e54750d65a8188bafc794)
commit 1d196f1ce7d3e9e20ce3afeee39f0148042614d1
Author: Simon McVittie <smcv@debian.org>
Date: Wed Jan 28 11:57:45 2026 +0000
Update changelog
commit 1b02fb14cdcf9c9f728f6b725752da76d3fb1b1a
Author: Simon McVittie <smcv@debian.org>
Date: Wed Jan 28 11:57:05 2026 +0000
Revert "d/gbp.conf, d/control, d/watch: Branch for 49.x"
This reverts commit d9a807af1cbe59d638da197d92dd494523320c72.
commit b2188a527c52303124a64c2c52c3863a1ab782a0
Merge: 750ab900 2dba0ac0
Author: Simon McVittie <smcv@debian.org>
Date: Wed Jan 28 11:56:54 2026 +0000
Merge branch 'debian/forky' into debian/latest
commit 2dba0ac01d7951f0d93513a40b99ba21905f9a23
Author: Simon McVittie <smcv@debian.org>
Date: Tue Jan 27 19:53:48 2026 +0000
Release to unstable
commit 8a53a3ccc4087f6f69dcc6d810b0266e3f9c3fbb
Author: Simon McVittie <smcv@debian.org>
Date: Tue Jan 27 17:54:44 2026 +0000
d/libmutter-17-0.symbols: Update
- Add new symbols
- Acknowledge removal of cogl_scanout_blit_to_framebuffer: technically
this is an ABI break, but it isn't used elsewhere in Debian
(and in particular isn't called by gnome-shell)
commit 80a05b83fe704090d8e2940ff9f1b559fd11c304
Author: Simon McVittie <smcv@debian.org>
Date: Tue Jan 27 16:28:26 2026 +0000
New upstream release
commit ce4351fecf3a0d28239310d9a127c61fccd5309d
Merge: 99359813 4f53b444
Author: Simon McVittie <smcv@debian.org>
Date: Tue Jan 27 16:28:26 2026 +0000
Update upstream source from tag 'upstream/49.3'
Update to upstream version '49.3'
with Debian dir 31b153a9ba1027343c295cd080a965affd1cf9a6
commit 4f53b4449e2833ab2d0ddeaffe581bb693a4b780
Merge: ae93dfa4 61659d33
Author: Simon McVittie <smcv@debian.org>
Date: Tue Jan 27 16:28:13 2026 +0000
New upstream version 49.3
commit 99359813c89c8424753f2b4f769736937e8112e5
Author: Simon McVittie <smcv@debian.org>
Date: Tue Jan 27 16:23:23 2026 +0000
Update changelog
commit d9a807af1cbe59d638da197d92dd494523320c72
Author: Simon McVittie <smcv@debian.org>
Date: Tue Jan 27 16:21:45 2026 +0000
d/gbp.conf, d/control, d/watch: Branch for 49.x
The debian/latest branch is already in use for early preparations
for v50.
commit 0dcaa45a225cedc8207158f1e049ed3f023a4469
Author: Andika Triwidada <atriwidada@gnome.org>
Date: Fri Jan 23 12:02:48 2026 +0000
Update Indonesian translation
commit b5486113116924a2685ec41ff84221bdbc2c47b5
Author: Antonio Marin <gnmer.6qxyg@slmail.me>
Date: Thu Jan 22 10:38:50 2026 +0000
Update Romanian translation
commit d2a08421d1eba9f476202746b1b73f88433dba1f
Author: mohansur <MohanSundaram.R@amd.com>
Date: Mon Jan 5 23:02:03 2026 +0530
x11: Apply scaling property during initial monitor config commit
Apply scaling during initial xrandr apply monitors config
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4484
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4834>
commit 750ab900ee3e51a70547b2380d08428f84e18d18
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Wed Jan 21 15:03:13 2026 +0800
debian/control: Soften mutter* <-> libmutter depdendencies
Declaring that mutter-common-bin needs to be the same version as
libmutter-*-0 isn't true at the moment in 50~alpha because the common
binaries haven't changed meaningfully since 49. But we do need to
mention that the previous versions will be broken by their own incorrect
predictions.
commit f2a18acb368e0bcfb4725d63e3708769049fb8f0
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Wed Jan 21 14:15:09 2026 +0800
debian/changelog: Mention X11 removal
commit c033e0416d79f70721b69e674772ed8165a8c6ec
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Wed Jan 21 14:01:46 2026 +0800
debian/tests: Rename mutter-17 to mutter-18
As it already is in ../
commit e9dc681dedfb3b0f95d28f24580a3253c8a46ac4
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Wed Jan 21 13:57:51 2026 +0800
debian/tests: Drop libmutter-17-dev
It relied entirely on functionality that doesn't exist anymore in 50:
meta_is_wayland_compositor() and xvfb.
commit fc047d07d1dae5666415c31790df293b90709934
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Wed Jan 21 13:50:04 2026 +0800
debian/rules: Test suite 'mutter/x11' no longer exists in 50.alpha
It went away with the entire X11 backend.
commit b21ff5750a853a85243c71ac5d190c7090e2d4cf
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Mon Jan 19 16:43:01 2026 +0800
debian: Update dependencies to match the 49.2..50.alpha changes
commit 7ac439e269d8c07a56d1733ee429c613a3cce2ce
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Mon Jan 19 16:33:05 2026 +0800
debian: Update libmutter-18-0.symbols for 50~alpha
commit 5bcf7b557f5f3895f32e337a235a3d6c4ea46088
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Mon Jan 19 16:19:15 2026 +0800
Add patch workarounds/tests-test-client-Sync-display-before-closing-it.patch
to avoid spurious test failures in 50.alpha. It's already fixed upstream
for 50.beta.
commit 16fc7db8eaf9f322a05807121afebb0560fa49d7
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Mon Jan 19 15:54:33 2026 +0800
Refresh patches and fix conflicts
commit 0e12a615ad9bc9cbce43b62d42805f94a8c04385
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Mon Jan 19 15:52:33 2026 +0800
debian: Preparing to package 50~alpha
commit 10a571af849c208a39ef8e2bdb927fe8c22425f0
Merge: fc572ca1 169a7cad
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Mon Jan 19 15:45:00 2026 +0800
Merge tag 'upstream/50_alpha' into debian/wip/50
commit 61659d33d6046c0af99db38c6adb956634c2da04
Author: Florian Müllner <fmuellner@gnome.org>
Date: Wed Jan 14 20:47:34 2026 +0100
Bump version to 49.3
Update NEWS.
commit 455d2ad2445a6fb001ea68222601e3b75ad052d9
Author: Jonas Ådahl <jadahl@gmail.com>
Date: Mon Jan 5 14:27:16 2026 +0100
backend: Switch back to using UPower instead of logind
UPower un-deprecated the relevant properties, and there was never a
release that had them actually deprecated. Not all the switched to
logind properties work for our use cases, and since UPower doesn't
intend deprecate them going any time soon, lets go back to using UPower.
This more or less reverts commit e96a98fc36a98f8981823f6f8e4dabb40ebded82.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4537
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4832>
(cherry picked from commit 51ea1232368f934046495cb294f9e36d9e738937)
commit 705d1f566ad6e3a48e2738d1f6172f8d3c5f1de0
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Sat Dec 27 10:52:21 2025 +0100
wayland/color-management: Send image description target volume events
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4438
v2: (Jonas Ådahl)
* Fix send_primaries function header formatting.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4823>
(cherry picked from commit 5ec17ea6a75750a8e4b35990bfa78559334f55e5)
commit 597e660f27b108e28a1a99bbff7b5ff944a4c810
Author: Sebastian Wick <sebastian.wick@redhat.com>
Date: Wed Aug 6 15:04:41 2025 +0200
clutter/color-state-params: Use BT.1886 EOTF instead of BT.709 OETF
The BT.1886 EOTF was internally wrongly mapped to BT.709, which is an
OETF. Actually use BT.1886 for content that is supposed to be
decoded with BT.1886.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4559>
(cherry picked from commit ac8aea9847c23ef6a9503fe0fa11b656685d0c86)
[jadahl] Avoid API breakage
commit a1395f6670aa11beeeff2f2dd13b2b1eb89f48f8
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Tue Dec 2 16:57:14 2025 +0100
x11: Trap X errors for a couple more XSendEvent calls
These may generate errors e.g. if the target window was destroyed.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4489
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4801>
(cherry picked from commit df48348452407c58e4681c23c91fc174efbf4fed)
commit a2efefaf7a1dc11bc8837090640207073348cf0a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue Dec 9 11:25:13 2025 +1000
tests/inputcapture: Set expected events before writing state
Let's avoid a potential reace between the events being written by the
other side and us not actually expecting them yet.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4601>
(cherry picked from commit 28f6b5981aaa62d8a72ee35588bc2c55174e97e9)
commit 6a8e84fa78361cf9b833fb88814bc4b6a7e11e43
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date: Wed Aug 27 12:23:29 2025 +1000
backends/input-mapper: If no outputs match for our device, assign NULL
During initialization of tablet devices mapped to "All Displays" we end
up with no suitable matches and the output is NULL. In that case we
still need to call into mapper_input_info_set_output() to calculate the
aspect ratio of the device to ensure the keep_aspect setting works as
expected.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3443
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4601>
(cherry picked from commit ff2083f1e42672a1f8db211544fa4376424e39cb)
commit ee9cd7a02d8af49ae56e643f10be644c0d3f27bb
Author: Sebastian Keller <skeller@gnome.org>
Date: Sat Nov 15 01:36:55 2025 +0100
clutter/gesture: Influence other gesture before state change
When a gesture is completed and set_state_authoritative() is called,
the set_state(COMPLETED) call might result in another set_state() call,
indirectly via its recognize signal handler. That state change then
could prevent other gestures from being canceled and result in them
handling the same event.
This was for example happening with the background app close button in
the gnome-shell quick settings menu when clicked. This hides the button
and thus triggers a set_state(WAITING) via
clutter_sprite_maybe_break_implicit_grab().
The call to set_state(WAITING) meant that the priv->state checks in
set_state_authoritative() and maybe_influence_other_gestures()
would not have succeeded and even if they had, the cancel_on_recognizing
array would have been cleared at that point.
For the background apps menu that meant that first the close button was
clicked and then the menu item behind it, which immediately started the
app again.
Avoid this problem by running maybe_influence_other_gestures() before
emitting the recognize signal.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8796
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4760>
(cherry picked from commit 9129c767043d9b5c7d7f3e296307091c211ecf41)
commit 7738aa30071dee9f2fade3ca91744498858bb173
Author: Sebastian Keller <skeller@gnome.org>
Date: Tue Nov 25 13:14:56 2025 +0100
startup-notification: Ignore sequences without app-id for cursor changes
Since f85ee952 and d0e8dc2b gnome-shell is creating startup sequences
without an associated app-id. For these sequences we have no idea if
the application will use the token or not, so we should ignore those
when deciding whether to show the loading cursor.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8857
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4774>
(cherry picked from commit e95bae2af4e76534c2809c61ecbe225974df6d03)
commit 80c849d6f814004994ca3e447bcc2d4c3ff235f3
Author: Carlos Garnacho <carlosg@gnome.org>
Date: Thu Nov 27 15:35:05 2025 +0100
backends/native: Emit scroll event with tool wheel axis changes
All tablet tools capable of wheel axis are mouse-alike, it does make
sense to handle changes to this axis as a regular scroll event, so that
Clutter widgetry can use this event as usual without special handling
of the wheel axis, this makes the wheel on mouse/puck/lens tools work
on GNOME Shell like a regular mouse would do.
These events are emitted with a related ClutterInputDeviceTool, thus
are ignored for wl_pointer event handling, and wl_tablet_tool does still
prefer the axis in the motion event sent, so this additional event does
not have unwanted side effects.
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/4414
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4781>
(cherry picked from commit f3814a3d0730d63a8422e9eea76c1ca7d99d488d)
commit d2d5b4fdcc098a6d013b2281e876549a6ae17717
Author: Carlos Garnacho <carlosg@gnome.org>
Date: Thu Nov 27 14:54:23 2025 +0100
backends: Make mouse/lens tool types follow mouse settings
These devices have been traditionally dealt with as mice, configurable
as mice, and it seems unintentional that the buttons for these can now
be mapped as with other tools.
For these tools, hardcode the default/primary/secondary actions for
these buttons without look ups to GSettings, and make them honor the
left-handed configuration set for regular mice instead.
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/4414
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4781>
(cherry picked from commit 1097cf66e6029c914ac6f9747a23aea1904af011)
commit 884a7512c47a3c8b9f8b6d41a2e78987b75e8546
Author: Carlos Garnacho <carlosg@gnome.org>
Date: Thu Nov 27 14:49:37 2025 +0100
backends/native: Fix mapping of mouse/lens tool buttons to actions
These actions are typically mapped in a way that makes sense for
styli, where the tip is the button1/primary/default action, and the
extra buttons are mapped to right/middle actions (and so forth).
This mapping however is non-sensical for mouse and lens tool types,
since those are mouse-alike, and the actions for middle and right
buttons become swapped. These tools do not have further extra buttons,
so it does not make sense to map either the tertiary action, the
first button is always left at its default action.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4414
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4781>
(cherry picked from commit e96aa66baa864c7a38b46be75273d8a043340a56)
commit 7b239612c9c8b75b76f6eaffb74a858ec04c8202
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Sat Jan 3 11:45:06 2026 +0100
tests: Pass GThread reference to g_thread_join
g_thread_join is documented to consume the reference passed to it.
Fixes use-after-free flagged by valgrind:
==18476== Invalid read of size 4
==18476== at 0x4EB0024: g_thread_unref (gthread.c:862)
==18476== by 0x40101A3: glib_autoptr_clear_GThread (glib-autocleanups.h:86)
==18476== by 0x40101C0: glib_autoptr_cleanup_GThread (glib-autocleanups.h:86)
==18476== by 0x4010E62: meta_test_service_channel_open_wayland_connection (service-channel-tests.c:166)
==18476== by 0x4EAD488: test_case_run (gtestutils.c:3115)
==18476== by 0x4EAD488: g_test_run_suite_internal (gtestutils.c:3210)
==18476== by 0x4EAD402: g_test_run_suite_internal (gtestutils.c:3229)
==18476== by 0x4EAD981: g_test_run_suite (gtestutils.c:3310)
==18476== by 0x4EADA07: g_test_run (gtestutils.c:2379)
==18476== by 0x48EA402: run_tests_idle (meta-context-test.c:282)
==18476== by 0x4E7B6AD: g_main_dispatch (gmain.c:3565)
==18476== by 0x4E7EA4E: g_main_context_dispatch_unlocked (gmain.c:4425)
==18476== by 0x4E7EA4E: g_main_context_iterate_unlocked.isra.0 (gmain.c:4490)
==18476== by 0x4E7F4CE: g_main_loop_run (gmain.c:4695)
==18476== Address 0x28bbb768 is 24 bytes inside a block of size 88 free'd
==18476== at 0x487687F: free (vg_replace_malloc.c:989)
==18476== by 0x4EB01B7: g_thread_join (gthread.c:1070)
==18476== by 0x4010E56: meta_test_service_channel_open_wayland_connection (service-channel-tests.c:201)
==18476== by 0x4EAD488: test_case_run (gtestutils.c:3115)
==18476== by 0x4EAD488: g_test_run_suite_internal (gtestutils.c:3210)
==18476== by 0x4EAD402: g_test_run_suite_internal (gtestutils.c:3229)
==18476== by 0x4EAD981: g_test_run_suite (gtestutils.c:3310)
==18476== by 0x4EADA07: g_test_run (gtestutils.c:2379)
==18476== by 0x48EA402: run_tests_idle (meta-context-test.c:282)
==18476== by 0x4E7B6AD: g_main_dispatch (gmain.c:3565)
==18476== by 0x4E7EA4E: g_main_context_dispatch_unlocked (gmain.c:4425)
==18476== by 0x4E7EA4E: g_main_context_iterate_unlocked.isra.0 (gmain.c:4490)
==18476== by 0x4E7F4CE: g_main_loop_run (gmain.c:4695)
==18476== by 0x4BC3235: meta_context_run_main_loop (meta-context.c:506)
==18476== Block was alloc'd at
==18476== at 0x4873818: malloc (vg_replace_malloc.c:446)
==18476== by 0x4E85CB1: g_malloc (gmem.c:100)
==18476== by 0x4EAFBAD: g_system_thread_new (gthread-posix.c:728)
==18476== by 0x4EAFF29: g_thread_new (gthread.c:950)
==18476== by 0x4010CD2: meta_test_service_channel_open_wayland_connection (service-channel-tests.c:181)
==18476== by 0x4EAD488: test_case_run (gtestutils.c:3115)
==18476== by 0x4EAD488: g_test_run_suite_internal (gtestutils.c:3210)
==18476== by 0x4EAD402: g_test_run_suite_internal (gtestutils.c:3229)
==18476== by 0x4EAD981: g_test_run_suite (gtestutils.c:3310)
==18476== by 0x4EADA07: g_test_run (gtestutils.c:2379)
==18476== by 0x48EA402: run_tests_idle (meta-context-test.c:282)
==18476== by 0x4E7B6AD: g_main_dispatch (gmain.c:3565)
==18476== by 0x4E7EA4E: g_main_context_dispatch_unlocked (gmain.c:4425)
==18476== by 0x4E7EA4E: g_main_context_iterate_unlocked.isra.0 (gmain.c:4490)
Fixes: 341d86c0a389 ("tests/service-channel: Add test for OpenWaylandConnection")
Fixes: 32dc870f3759 ("wayland: Add X11 interop service client protocol")
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4823>
(cherry picked from commit 7e34b69ff150356417a02eb6b0a874a4bc10f136)
commit d50497a5f14c3f5b051c42202f89bb4f006f4f40
Author: Daniel van Vugt <daniel.van.vugt@canonical.com>
Date: Fri Nov 14 17:49:08 2025 +0800
stage: Ensure the damage rect is removed when overlays are inhibited
When switching from software cursors to hardware cursors, the overlay
gets inhibited but not destroyed. However the overlay's damage rectangle
was persisting and being sent with every frame even when it's not being
painted. Even worse, this was leading to frames being scheduled that
really had nothing to paint at all.
Ensure the path that removes the damage rectangle gets visited when
overlays are inhibited.
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/4459
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4759>
(cherry picked from commit 1147dc32365a9447d7294b5db134aeb27e993dd9)
commit 44e7846f3cb54dbbe57d099408246cdbcb1c2f36
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Wed Oct 29 15:33:45 2025 +0100
wayland/pointer-constraints: Compensate for Xwayland buffer scale
For rootless Xwayland, meta_wayland_pointer_get_relative_coordinates
returns surface coordinates based on buffer scale 1, but the rest of
the pointer constraints code expects stage coordinates.
Fixes Xwayland pointer constraints with "xwayland-native-scaling" and
non-100% scaling.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3765
v2:
* Handle in meta_wayland_pointer_constraint_maybe_enable &
meta_pointer_lock_wayland_create_constraint. (Jonas Ådahl)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 51051444916f9009cdb25f78d0a626208e8ac20f)
commit 588e126cfcf969d644a74e4e5c51607c36033b70
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Wed Oct 29 15:48:36 2025 +0100
wayland: Use float parameters for _pointer_get_relative_coordinates
Preparation for next commit.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 55bbe80f70f15efb1e820fac11a927a8c4763be3)
commit 65ea3ba15f4476846dd598ba240ec7a0f9963128
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Mon Oct 27 18:43:55 2025 +0100
window/xwayland: Apply viewport scale only to sizes
Not to positions.
v2:
* Tweak commit log to be a change description. (Jonas Ådahl)
v3: (Jonas Ådahl)
* Git shortlog tweak.
* Now using separate size APIs.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 5e0133d497803f10a500222d58d0919ed696097b)
commit d74645443f8e1c9e585550ef322de1878e29ec07
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Tue Nov 18 10:37:26 2025 +0100
window: Add size variants of stage/protocol conversion APIs
The size variants always use MTK_ROUNDING_STRATEGY_GROW, otherwise they
behave the same as the existing variants so far.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit d14a741b7416c632c68fd1757fc9ef8e366c1f75)
commit e4275284ecc7270a2ab7228d6835e17c7af60d2e
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Tue Oct 28 17:59:04 2025 +0100
window/xwayland: Convert RandR rect positions to stage coordinates
Previously wouldn't work correctly for rect positions != 0 and Xwayland
scale != 1.
v2:
* Git shortlog tweak. (Jonas Ådahl)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 5f06775e1559a7c8554afa7de49c66f2ec042985)
commit 7c6042cc92e3d19aee0685ce6bd9e7be72d5af51
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Tue Oct 28 17:37:52 2025 +0100
wayland/output: Send layout events if Xwayland scale changed
Different Xwayland scale may result in different layout in output events
sent to Xwayland, even if mutter's internal layout doesn't change for
the output.
v2:
* Rename meta_wayland_output_set_xwayland_effective_scale to
meta_wayland_output_update_xwayland_effective_scale. (Jonas Ådahl)
v3:
* Tweak indentation per CI check-c-code-style job.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 3130015e873edafe2b747840f3565dd9b1ffee89)
commit 78203b6b5f2d0eb2d20ae566f057ed912eb6915d
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Fri Oct 24 11:02:46 2025 +0200
wayland/surface: Take Xwayland buffer scale into account for input region
Xwayland always calculates the Wayland surface input region based on the
xdg_output logical layout (which we multiply by the effective scale for
rootless Xwayland) and buffer scale 1.
v2:
* Git shortlog tweak. (Jonas Ådahl)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 210792669563c355575a25b9383867b00bd0b220)
commit 03e62d683a4bcb733af5cb922dc30cfe24998fbc
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Fri Oct 24 10:55:32 2025 +0200
region: Add mtk_region_downscale
Mostly the same as mtk_region_scale, but scales down instead of up.
v2:
* Round up downscaled rect sizes. (Jonas Ådahl)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit a87b83b6afe2e99c73278fc536fd04c860756c69)
commit 100f0ed4dd2a32111e9ea5999be12b0494c107c4
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Wed Oct 15 09:37:13 2025 +0200
window/xwayland: Take src_rect into account in get_viewport_scale_x/y
We were relying on the src_rect fully covering the buffer, which
currently happens to be always the case with rootless Xwayland, that
could change in the future though.
v2:
* Git shortlog tweak. (Jonas Ådahl)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 0f88294c41a561426318d0b5992d84cd32dc55f2)
commit f0149daa226c211a480ffec5b9095391f7390f03
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Mon Nov 24 16:33:29 2025 +0100
wayland/surface: Handle Xwayland viewport & buffer scale consistently
Viewport source & destination dimensions are now always in stage
coordinates. Xwayland calculates the viewport based on the xdg_output
logical layout (which we multiply by the effective scale for rootless
Xwayland) and buffer scale 1, so we need to divide the viewport
dimensions by the buffer scale.
Correspondingly, get_viewport_scale_x/y need to convert between buffer &
stage coordinates, and meta_wayland_surface_try_acquire_scanout needs to
convert the src_rect to buffer coordinates. AFAICT the latter was broken
also for native Wayland clients using buffer scale > 1.
surface->applied_state.scale is now always the effective scale for
rootless Xwayland surfaces, no longer overridden to 1 while Xwayland
uses viewport scaling. This allows using surface->applied_state.scale
instead of meta_xwayland_get_effective_scale in some cases.
v2:
* Git shortlog tweak. (Jonas Ådahl)
v3:
* Convert from buffer to stage coordinates in get_viewport_scale_x/y.
* Expand the commit log on why these changes are made.
v4:
* Squash in changes making surface->applied_state.scale always match the
effective scale, for consistency. (Jonas Ådahl)
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 8dfff288d31402ca308e1a72a791aad2651d4a78)
commit 2efc70a0adb2875cc602e99321091237e6958407
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Tue Oct 21 18:25:59 2025 +0200
xwayland: Apply viewport dst_size & src_rect changes together
Shouldn't make any difference in behaviour yet, it helps ensure
consistent behaviour with the next commit though.
v2:
* Adjust for former previous commit being moved after this one.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 604f7686b2a6ae7e733ebd078349f9b86a9f4132)
commit 283a47d883f666e30d76ac87a05b2ad7ed628673
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Mon Oct 20 17:34:50 2025 +0200
xwayland: Update highest monitor scale before sending output events
Otherwise the logical layout in xdg_output events is based on the
previous highest monitor scale, resulting in Xwayland's layout being
inconsistent with mutter's.
Fixes: a48f6117df32 ("monitor-manager: Add and use 'monitors-changing' signal")
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4379
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4731>
(cherry picked from commit 31d6cb7d184d558cb78d81e4a39eccf8f6d35f7e)
commit d5bd4d8370530b4ed45957f77fc5277df34fcebf
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Thu Nov 20 16:44:44 2025 +0100
Revert "compositor,x11: Use per-view frame counter for MetaSyncCounter"
This reverts commit b5ca2a46d5294bda1420bb1b4ea9ad916cd206a3.
The per-view frame counter turns out to be unsuitable for
MetaSyncCounter, because there may be jumps between the per-view frame
counters of different stage views for the same window.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4216
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4766>
(cherry picked from commit fae638963a117cb261eebe411500eb0299ea303b)
commit 21b05b64b517205b39b13a3cb2c00c1c08f8ecb7
Author: Michel Dänzer <mdaenzer@redhat.com>
Date: Thu Nov 20 16:42:32 2025 +0100
Revert "clutter: Remove unused clutter_stage_get_frame_counter"
This reverts commit e18b3d9a20029c0973480830a70e14c100b69467.
Required for next revert commit.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4766>
(cherry picked from commit 784a7058f361357c0d4419b6a800857e96105580)
commit fc572ca12bd37f496f36437ff854ff7567afdf5d
Author: Jeremy Bícha <jbicha@ubuntu.com>
Date: Thu Jan 1 10:38:25 2026 -0500
Remove references to armel & mips64el
Update architectures where sysprof is available
commit 29c8599ca1b954df7d8eda250ac0cbe41febada3
Author: Simon McVittie <smcv@debian.org>
Date: Mon Nov 24 17:29:10 2025 +0000
Release to unstable
commit cd3d78ce1b485374d7a77f12a00f49fd5cffcef8
Author: Simon McVittie <smcv@debian.org>
Date: Mon Nov 24 17:28:35 2025 +0000
d/libmutter-17-0.symbols: Always generate dependencies on formal releases
commit 3fa29b99f320c9500db3e59547b7850c66677870
Author: Simon McVittie <smcv@debian.org>
Date: Mon Nov 24 17:25:46 2025 +0000
d/libmutter-17-0.symbols: Update
commit 91e9405bd03848141b18f5e6f78f17dd44a86854
Author: Simon McVittie <smcv@debian.org>
Date: Mon Nov 24 16:27:02 2025 +0000
Mention #1121120 in changelog
Closes: #1121120
commit bba59a4dcd3ad7c69480062e17c5defa03ca49aa
Author: Simon McVittie <smcv@debian.org>
Date: Mon Nov 24 16:23:18 2025 +0000
Re-export patch series
Gbp-Dch: ignore
commit ad9080edf8c0ca103d999a89ed1ff7b1bf8da22e
Author: Simon McVittie <smcv@debian.org>
Date: Mon Nov 24 16:23:01 2025 +0000
New upstream release
commit b6f616f30894eab138f40ac186f7ad03d7b522bf
Merge: 8cdfb9d0 ae93dfa4
Author: Simon McVittie <smcv@debian.org>
Date: Mon Nov 24 16:23:01 2025 +0000
Update upstream source from tag 'upstream/49.2'
Update to upstream version '49.2'
with Debian dir af2c321a8449609e2a671fbce245b1069d140e1b
commit 8cdfb9d08a57887bde62a134a0df1fa44fd8546e
Author: Simon McVittie <smcv@debian.org>
Date: Fri Oct 31 10:42:57 2025 +0000
Release to unstable (starts transition: #1116394)
Among the 5 debian patches available in version 49.4-1 of the package, we noticed the following issues: