Commits on Source (21)
-
It was removed in 3.34 as part of 6ed5d2e2. And we thought that was the only thread that might exist and use X11. But the top gnome-shell crasher in 3.36 seems to suggest otherwise. We don't know what or where the offending thread is, but since: 1. We used XInitThreads for years already prior to 3.34; and 2. Extensions or any change to mutter/gnome-shell could conceivably use threads to make X calls, directly or indirectly, it's probably a good idea to reintroduce XInitThreads. The failing assertion in libx11 is also accompanied by a strong hint: ``` fprintf(stderr, "[xcb] Most likely this is a multi-threaded client " \ "and XInitThreads has not been called\n"); ``` https://bugs.launchpad.net/bugs/1877075 Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1252 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1256 (cherry picked from commit 1d5f9b69)
b1df6d08 -
Carlos Garnacho authored
Ensure that it does receive Start and Stop orderly, and error out otherwise. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1258 (cherry picked from commit 283cccbe)
fadfca2e -
Carlos Garnacho authored
They all checked that the remote session service talked with the correct peer, and some of them did check that there is an associated screencast session. Add a new check for the session being started (as it's state is decoupled with screencast session availability) and move all checks to a function that is called from all input-oriented DBus methods. Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1254 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1258 (cherry picked from commit c8837a8d)
3daf9124 -
Carlos Garnacho authored
Make the data device track the keyboard focus, and use that list to forward the clipboard selection to all data devices from the same client. This is however not the case of DnD data offers, as the semantics of multiple in-flight offers is unclear. Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1250 (cherry-pick of commit 7e4e3714) https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1262
36f5a0a4 -
Carlos Garnacho authored
Make the data device track the keyboard focus, and use that list to forward the primary selection to all data devices from the same client. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1253 (cherry-pick of commit b45d5ef3) https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1262
493aeb65 -
Jonas Ådahl authored
"Legacy" is a misleading name, it's just how the native backend and the X11 backend behaves differently. Instead rename it to 'add_view()' and add the sanity check to the caller. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1251 (cherry picked from commit 73a43636)
6e6183ec -
Jonas Ådahl authored
The max framerate 1/0 means variable without any particular max, so don't throttle if that was set. Not doing this would end up with a floating point exception. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1251 (cherry picked from commit 96dd794f)
ba1f4221 -
Jonas Ådahl authored
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1251 (cherry picked from commit dfed5f6a)
cb7ba2e9 -
Jonas Ådahl authored
In the native backend, the MetaRenderer manages the view by creating one per CRTC, but until now the MetaStageX11 managed the view for the X11 backend. This caused some issues as it meant meta_renderer_get_views() not returning anything, and that the view of the X11 screen not being a MetaRendererView, while in the other backends, all views are. Fix this by moving the view management responsibility to MetaRendererX11Cm, and have MetaStageX11 only operate on it via meta_renderer_x11_cm_*() API. The MetaRendererX11Cm takes care of making sure the view is always added to the list in the renderer, and turning X11 screen sizes into "layouts" etc. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1251 (cherry picked from commit 8a541c08)
31307720 -
Jonas Ådahl authored
We're iterating inside the PipeWire loop when detecting PipeWire errors, and shouldn't destroy the PipeWire objects mid-iteration. Avoid this by first disabling the stream src (effectively stopping the recording), then notifying about it being closed in an idle callback. The notification eventually makes the rest of the screen cast code clean up the objects, including the src and the associated PipeWire objects, but will do so outside the PipeWire loop iteration. Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1251 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1251 (cherry picked from commit c8e12ead)
63fc71f0 -
Carlos Garnacho authored
This only checks touchscreen availability as we have no access to tablet-mode switch events as we do on the native backend. Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1242 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1278 (cherry picked from commit 38bbd959)
a1bc2e0a -
Carlos Garnacho authored
This cannot be made to work reliably. Some factoids: - Internal devices may be connected via USB. - The ACPI spec provides the _PLD (Physical location of device) hook to determine how is an USB device connected, with an anecdotal success rate. Internal devices may be seen as external and vice-versa, there is also an "unknown" value that is widely used. - There may be non-USB keyboards, the old "AT Translated Set 2 Keyboard" interface does not change on hotplugging. - Libinput has an internal series of quirks to classify keyboards as internal of external, also with an "unknown" value. These heuristics are kinda hopeless to get right by our own hand. Drop this external keyboard detection in the hope that there will be something more deterministic to rely on in the future (e.g. the libinput quirks made available to us directly or indirectly). Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2378 Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2353 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1277 (cherry picked from commit f8e2234c)
b425f115 -
Simon McVittie authoredc211f7be
-
Jonas Ådahl authored
The stream will clean up the buffers, so let it do that before we destroy them under its feet. Note that it'll only do this after the following PipeWire commit: commit fbaa4ddedd84afdffca16f090dcc4b0db8ccfc29 Author: Wim Taymans <wtaymans@redhat.com> Date: Mon Jun 1 15:36:09 2020 +0200 stream: allow NULL param and 0 buffers in disconnect https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1283 (cherry picked from commit 97175f8f)
98a0c5cb -
Jonas Dreßler authored
Apparently some shell extensions are setting invalid NaN allocations, leading to weird crashes like https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1849. Even though an implementation error like this probably deserves a crash, those can be hard to debug since the crash can happen anywhere the allocation is being used later. So let Clutter be the good guy and prevent implementations from setting invalid allocations by sanity-checking the ClutterActorBoxes using g_return_if_fail. Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1849 https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1280
33c008b9 -
Florian Müllner authored
Update NEWS.
dc75c7d2 -
Marco Trevisan authored9cfd6998
-
Marco Trevisan authored
Upstream version 3.36.3
2dd47fe8 -
Marco Trevisan authoredc61c6799
-
Marco Trevisan authored4a7c69bb
-
Marco Trevisan authored6d9d9b6a