mutter:cherry-pick-1ca0fdc9

Last commit made on 2019-05-03
Get this branch:
git clone -b cherry-pick-1ca0fdc9 https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
cherry-pick-1ca0fdc9
Repository:
lp:mutter

Recent commits

b53240a... by Jonas Ådahl

idle-monitor: Postpone dispatching of idle timeout if not ready

If we update the ready time while the source is already in the
to-dispatch list, changing the ready time doesn't have any effect, and
the source will still be dispatched. This could cause incorrect idle
watch firing causing the power management plugin in
gnome-settings-daemon to sometimes turn off monitors due to it believing
the user had been idle for some time, while in fact, they just logged
back in.

Fix this by not actually dispatching the idle timeout if the ready time
is in the future when actually dispatching.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/543

(cherry picked from commit 1ca0fdc928511edea57b72bfb798be84b8293b1e)

668c44e... by Marco Trevisan (Treviño)

compositor: Disconnect from stage signals on destruction

From this point there's not any need for the compositor to listen to signals
so we can disconnect from the stage ones we are connected to.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/556

(cherry picked from commit 3ba79961fed2c70df3201b3e588990c92aadcd7f)

3495a43... by Marco Trevisan (Treviño)

compositor: Destroy window actors list on destruction

When the compositor is destroyed we should cleanup the list of window actors we
created and destroy them.
Since all the actors are added to the window_group or top_window_group we can
just destroy these containers (together with the feedback_group), and simply
free the windows list.

This is particularly needed under X11 because before we destroy the display, we
might do some cleanups as detaching the surface pixmaps and freeing the damages
and if this happens at later point (for example when triggered by garbage
collector in gnome-shell), we might crash because the x11 dpy reference is
already gone.

Destroying the window actors instead, ensures we avoid any further call to X11
related functions and that we release the actors XServer resources.

Fixes https://gitlab.gnome.org/GNOME/mutter/issues/576

(cherry picked from commit 7718e67f5c0c78ed93e9ad04e7254b6db70a0337)

9a795d3... by Olivier Fourdan <email address hidden>

input-settings: Use 0 initialized struct for kbd a11y

Make sure our keyboard accessibility settings structure is all zero
initialized, to avoid potential padding issues on some platform when
comparing settings.

Reported by Daniel van Vugt on IRC.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/552

(cherry picked from commit eccf7b105ca36f2554e897332d05c54cd8e7d1bb)

abc3fdc... by Olivier Fourdan <email address hidden>

clutter/x11: disable mousekeys with Numlock ON

GNOME documentation on accessibility features states that mousekeys
work only when NumLock is OFF:

  https://help.gnome.org/users/gnome-help/stable/mouse-mousekeys.html

Change the clutter/x11 implementation to match the documentation, i.e.
disable mousekeys when NumLock in ON so that switching NumLock ON
restores the numeric keypad behaviour.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/530
(cherry picked from commit 251fa024c416b1507a8cb1c9115082be87d25632)

4705a31... by Olivier Fourdan <email address hidden>

clutter/evdev: disable mousekeys with Numlock ON

The clutter/evdev implementation of mousekeys is designed after the
current implementation in X11, and works when the setting is enabled
regardless of the status of NumLock.

The GNOME documentation on accessibility features states however that
mousekeys work only when NumLock is OFF:

  https://help.gnome.org/users/gnome-help/stable/mouse-mousekeys.html

Change the clutter/evdev implementation to match the documentation, i.e.
disable mousekeys when NumLock in ON so that switching NumLock ON
restores the numeric keypad behaviour.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/530
(cherry picked from commit 471b61bd1400435b7af977c47c21b8fc747530d9)

e3f3274... by =?utf-8?q?Florian_M=C3=BCllner?= <email address hidden>

Bump version to 3.32.1

Update NEWS.

d2ca5cc... by Olivier Fourdan <email address hidden>

display: Fix inconsistent behavior with demand attention

When focus stealing prevention kicks in, mutter would set the demand
attention flag on the window.

Focus stealing prevention would also prevent the window from being
raised and focused, which is expected as its precisely its purpose.

Yet, when that occurs, the user expects the window which has just been
prevented from being focused to be the next one in the MRU list, so
that pressing [Alt]-[Tab] would raise and give focus to that window.

This works fine when the window is placed on the primary monitor, but
not when placed on another monitor, in which case the window which has
been denied focus is placed ahead of the MRU list and pressing
[Alt]-[Tab] would leave the focus on the current window.

This is because of a mechanism in `meta_display_get_tab_list()` which
forces the windows with the demand attention flag set to be placed first
in the MRU list when they're placed on a workspace different from the
current one.

But because workspaces apply only to the primary monitor (by default),
the windows placed on other outputs have their workspace set to `NULL`
which forces them ahead of the MRU list by mistake.

Fix this by using the appropriate `meta_window_located_on_workspace()
function to check if the window is on another workspace.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/523

3de6f7e... by Carlos Garnacho

core: Emit MetaStartupNotification::changed on sequence completion

This way handlers that want to know the get_complete() status will be able
to do so without further delays.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/541

38ff01d... by Carlos Garnacho

core: Add MetaStartupSequence::complete signal

It was a vfunc so far, but we want things subscribing to it.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/541