mutter:wip/nielsdg/reenable-gtk-doc

Last commit made on 2019-04-08
Get this branch:
git clone -b wip/nielsdg/reenable-gtk-doc https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
wip/nielsdg/reenable-gtk-doc
Repository:
lp:mutter

Recent commits

83fd21f... by NielsDG

docs: Re-enable generating the reference manual

gtk-doc support was removed around 3 years ago with commit 7dc0b0e6.
Now that we have Meson and [MRs related to documentation], it makes
sense to re-enable this, so people who want to use libmutter can do so
without having to actually dive in the code.

[MRs related to documentation]: https://gitlab.gnome.org/GNOME/mutter/merge_requests/269

46453c7... by NielsDG

skip MetaWaylandFrameCallback for gtk-doc

gtk-doc has a bug in its parser where it doesn't allow the first field
of a struct to have something of the form `struct foo bar;`.

See also https://github.com/GNOME/gtk-doc/blob/master/gtkdoc/common.py#L236

b2d0184... by Jonas Ådahl

renderer-native: Freeze frames while retrying to page flip

We're currently always waiting for unfinished page flips before flipping
again. This is awkward when we are in an asynchronous retry-page-flip
loop, as we can synchronously wait for any KMS page flip event.

To avoid ending up with such situations, just freeze the frame clock
while we're retrying, then thaw it when we succeded.

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

808a75b... by Jonas Ådahl

renderer-native: Add helper to get backend from renderer

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

88e4ff7... by Jonas Ådahl

backend: Add API to freeze/thaw frame clock

It's just a thin wrapper around the ClutterStage API, with the intention
to hide the awkward nest of interdependent backends.

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

3cc3b75... by Jonas Ådahl

renderer-native: Fake page flipping slower when power saving

We rely on the frame clock to compress input events, thus if the frame
clock stops, input events are not dispatched. At the same time, there
is no reason to redraw at a full frame rate, as nothing will be
presented anyway, so slow down to 10Hz (compared to the most common
60Hz). Note that we'll only actually reach 10Hz if there is an active
animation being displayed, which won't happen e.g. if there is a screen
shield in the way.

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

53b59d8... by Jonas Ådahl

renderer-native: Fake page flipped if power saving when retrying

When we're in a page-flip retry loop due to the FIFO being full
(drmModePageFlip() failing with EBUSY), we should not continue to try
when starting to power save, as that means we're blocking new frames,
which itself blocks input events due to them being compressed using the
frame clock.

We'd also hit an assert assuming we only try to page flip when not power
saving.

Thus, fake we flipped if we ended up reaching a power saving state while
retrying.

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

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

40e7e5d... by Jonas Ådahl

renderer-native: Fix page flip retry timeout calculation

It tried to add a (implicitly casted) float to a uint64_t, and due to
floating point precision issues resulted in timestamps intended to be
in the future to actually be in the past. Fix this by first casting the
delay to an uint64_t, then add it to the time stamp.

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

4cae9b5... by Jonas Ådahl

monitor-manager: Clean up DPMS state tracking

DPMS is configured from a bit all over the place: via D-Bus, via X11 and
when reading the current KMS state. Each of these places did it slightly
differently, directly poking at the field in MetaMonitorManager.

To make things a bit more managable, move the field into a new
MetaMonitorManagerPrivate, and add helpers to get and set the current
value. Prior to this, there were for example situations where the DPMS
setting was changed, but without signal listeners being notified about
it.

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

72aeeb8... by Jonas Ådahl

ci: Blacklist .c and .h in the commit message subject prefix

`boxes.c: Do that` should be just `boxes: Do that`.

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