mutter:cherry-pick-041be7c5

Last commit made on 2018-07-13
Get this branch:
git clone -b cherry-pick-041be7c5 https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
cherry-pick-041be7c5
Repository:
lp:mutter

Recent commits

b51d32a... by Jonas Ådahl

screen-cast-src: Allow negotiating the framerate

The framerate for screen cast sources was set to variable within 1 FPS
and the framerate of the monitor being screen casted. This meant that if
the sink didn't match the framerate (e.g. had a lower max framerate),
the formats would not match and a stream would not be established.

Allow letting the sink clamp the framerate range by setting it as
'unset', allowing it to be negotiated.

(cherry picked from commit 041be7c565914c5f078be879b36811b1bc2c1d3a)

3288edf... by Olivier Fourdan <email address hidden>

contraints: Do not constrain modals without parent

xdg-foreign clears the `transient_for` of a modal dialog when its
imported parent is destroyed, which would later cause a crash in
`constrain_modal_dialog()` because the transient `NULL`.

So in case a modal dialog has no parent, do not try to constrain it
against its parent.

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/174
(cherry picked from commit 912a6f5e3f86040b75c18ce2e2c26ffd9a7925ee)

fe16166... by Jonas Ådahl

backends: Add logical monitor -> monitor -> output -> crtc ref chain

Make it so that each logical monitor has a reference to all the
monitors that are assigned to it.

All monitors has a reference to each output that belongs to it.

Each output has a reference to any CRTC it has been assigned.

https://bugzilla.gnome.org/show_bug.cgi?id=786929

(cherry picked from commit 768ec15ea072df21dd6caeb2507d41223ade9116)

7d01aec... by Jonas Ådahl

backends: Move MetaOutput::crtc field into private struct

No functional changes. This is only done so that changes to reference
counting can done more reliably.

https://bugzilla.gnome.org/show_bug.cgi?id=786929

(cherry picked from commit 1200182d706d5144df49a221b26225c729c2a60b)

a41d84d... by Marco Trevisan (Treviño)

renderer-native: Don't crash if the FB surface can't be locked

(cherry picked from commit 0332b7394e56f71c15692663ab05f8c84a4b9eff)

e73b321... by Marco Trevisan (Treviño)

device-manager-evdev: Add main seat to seats by default

Treat the main seat as other seats, so we don't have to handle it differently
in specific places. This was already the case before when a real device
was plugged before the startup, but not applied when hotplugging a device.

(cherry picked from commit 15f41c9f68abfbb5408205a45f9f578e2ff5ee86)

b6dc205... by Marco Trevisan (Treviño)

device-manager-evdev: Free the main seat on finalize

(cherry picked from commit 2a38601b4211f9b1dedd45261a040e51de13b838)

72965aa... by Marco Trevisan (Treviño)

device-manager-evdev: Set and unset the stage for the main seat too

When no input devices are available on startup the device manager might be fast
enough to be constructed so that no default stage is set yet, and thus when
main seat virtual devices are created they won't have a proper stage set.
If then we plug a real device, the events that an input manager could generate
won't be associated to any stage and thus won't be processed.

We need then ensure that when we update the stage for the device manager we
(un)associate it also to the main seat devices.

(cherry picked from commit d7bdc1591fba5353b23a28ebf676da0e7b58c84e)

2a6782d... by Marco Trevisan (Treviño)

clutter-device-evdev: Get devices from main seat if no real seat is set

In devices such as ARM boards there could be no input devices connected on
startup, leading to a crash when we try to process artificial events that
could be queued (as gnome-shell does when syncing pointer).

Those events still should refer to a device and, in case we don't have one
provided by libinput we should still return the core devices defined in the
main seat.

(cherry picked from commit 3e85ac8131fc76312a2382d83df6926b88a37415)

5142c8c... by Marco Trevisan (Treviño)

clutter-seat-evdev: Add function to get device by id

(cherry picked from commit 5f83d9a5c854873746a31d0cc4d118c9a6d87ddd)