mutter:tintou/gnome-desktop-4

Last commit made on 2022-04-22
Get this branch:
git clone -b tintou/gnome-desktop-4 https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
tintou/gnome-desktop-4
Repository:
lp:mutter

Recent commits

4ac90aa... by Corentin Noël

meson: Use gnome-desktop-4

This is a drop-in replacement of gnome-desktop-3.0 in our case.

43ae37a... by Sebastian Wick <email address hidden>

backends/native: Update cursor also when scaled or transformed

MetaCursorRendererNative only updates the cursor state when the
underlying texture changes. The cursor scale and transform do not
trigger updates. This results in wrong cursor orientations on rotated
displays. Use both texture changes and scale and transformation changes
to figure out when to update the cursor state.

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

6e458f9... by =?utf-8?q?Jonas_Dre=C3=9Fler?= <email address hidden>

clutter: Pass events to pointer a11y before going through filters

We want all pointer events to be passed through the pointer a11y
processing before going through event filters: Once we go through event
filters, events might be dispatched to Wayland and get filtered out.

With the changes to immediately dispatch events to wayland, this changed
and the pointer a11y is now no longer seeing any events going to wayland
clients. Fix it by shuffling things around a bit and letting pointer
a11y take a peek at events earlier.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5192
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2332>

c648037... by =?utf-8?q?Jonas_Dre=C3=9Fler?= <email address hidden>

clutter: Bail out and warn on reentry into mapping/unmapping cycle

There's a bunch of crashes right now where the assertions in
clutter_actor_set_mapped() after calling the map/unmap() vfuncs are
failing. The only way this can happen is by re-entering
clutter_actor_set_mapped() during the map/unmap recursion.

The reason for those crashes is that the shell hides/shows some actors
in response to crossing events and key-focus changes. These in turn get
triggered by the newly introduced ungrabbing of ClutterGrabs when an
actor gets unmapped, which triggers GRAB_NOTIFY crossing events and
key-focus changes.

Since these situations are hardly avoidable (it's a valid use-case to
hide/show something in response to a crossing/key-focus event), catch
the set_mapped() call early while we reenter the mapping machinery and
log a warning instead of crashing.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3165
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2299>

4a86542... by =?utf-8?q?Jonas_Dre=C3=9Fler?= <email address hidden>

clutter: Set event as current_event when going through event filters

With the introduction of untrottled event delivery to wayland clients,
we moved the _clutter_event_process_filters() call outside of
_clutter_process_event(). This also moved the processing of event
filters outside of the timespan where the event is added to Clutters
current_event stack, making Clutter.get_current_event() no longer
available to anything happening inside mutters event filter.

One thing that happens in mutters event filter is detecting and
triggering keybindings like the alt-tab switcher. Now the alt-tab
switcher has a special case where it finishes and activates a window
right when the keybinding gets activated, relying on the current event
time as the timestamp to activate the window.

Now since the current event time is no longer available from inside
mutters event filter, we'd pass 0 to meta_window_activate(), causing
mutter to send a notification instead of actually activating the window.

To fix this, also set a current_event for the ClutterContext when going
through event filters, this makes sure Clutter.get_current_event_time()
works when called inside keybinding handlers.

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

91ae72a... by Carlos Garnacho

core: Account ClutterStage grabs on Wayland key focus synchronization

When switching between the existence and not of a stage ClutterGrab, we
would correctly attempt to synchronize key focus from the perspective of
the Wayland clients.

But this synchronization should do its own checks about existing stage
grabs before determining a client window has key focus or not.

Add that check, so that grabs correctly unfocus the keyboard in Wayland
clients, in addition to pointers and touch.

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2194
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2366>

ad838ec... by Łukasz Spintzyk

renderer/native: Restore EGL state after creating secondary GPU state

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

af7e116... by Daniel van Vugt

cursor-renderer/native: Remove unused DRM_CAP_CURSOR_{WIDTH,HEIGHT}

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

be9deeb... by Daniel van Vugt

crtc/kms: Don't add gamma to the update if unsupported by the CRTC

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2197
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2360>

364572b... by Daniel van Vugt

kms/crtc: Add function meta_kms_crtc_has_gamma

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