a057432e3d
Mostly in order to untangle it from the rest, preparing turning it into a GObject. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1514>