summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2020-04-27 13:37:16 +0200
committerJonas Ådahl <jadahl@gmail.com>2020-09-30 09:27:22 +0200
commit231c2649a705d1831e976a41431a33a0337c33e2 (patch)
treebb08f0cee8094ddf8f77e1cf03365e7b685742a3
parent88c9aa9ea1b5a90be65ca4866d97540ce2b1f58c (diff)
downloadmutter-231c2649a705d1831e976a41431a33a0337c33e2.tar.gz
wayland/compositor: Pass backend when constructing
This is so that it can be retrieved later without going via the global singleton. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1218 (cherry picked from commit e8b09df8d2746eacd341b00160b02738e9e5e8a1)
-rw-r--r--src/backends/meta-backend.c2
-rw-r--r--src/wayland/meta-wayland-private.h2
-rw-r--r--src/wayland/meta-wayland.c9
-rw-r--r--src/wayland/meta-wayland.h2
4 files changed, 11 insertions, 4 deletions
diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c
index dad22da03..0a0b9d778 100644
--- a/src/backends/meta-backend.c
+++ b/src/backends/meta-backend.c
@@ -891,7 +891,7 @@ meta_backend_init_wayland_display (MetaBackend *backend)
{
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
- priv->wayland_compositor = meta_wayland_compositor_new ();
+ priv->wayland_compositor = meta_wayland_compositor_new (backend);
}
void
diff --git a/src/wayland/meta-wayland-private.h b/src/wayland/meta-wayland-private.h
index e28ca06d6..a7e5604fc 100644
--- a/src/wayland/meta-wayland-private.h
+++ b/src/wayland/meta-wayland-private.h
@@ -74,6 +74,8 @@ struct _MetaWaylandCompositor
{
GObject parent;
+ MetaBackend *backend;
+
struct wl_display *wayland_display;
char *display_name;
GHashTable *outputs;
diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c
index a7bf9158c..b37d9fdcf 100644
--- a/src/wayland/meta-wayland.c
+++ b/src/wayland/meta-wayland.c
@@ -362,9 +362,14 @@ meta_wayland_get_xwayland_auth_file (MetaWaylandCompositor *compositor)
}
MetaWaylandCompositor *
-meta_wayland_compositor_new (void)
+meta_wayland_compositor_new (MetaBackend *backend)
{
- return g_object_new (META_TYPE_WAYLAND_COMPOSITOR, NULL);
+ MetaWaylandCompositor *compositor;
+
+ compositor = g_object_new (META_TYPE_WAYLAND_COMPOSITOR, NULL);
+ compositor->backend = backend;
+
+ return compositor;
}
void
diff --git a/src/wayland/meta-wayland.h b/src/wayland/meta-wayland.h
index 15b7310ba..4164563e8 100644
--- a/src/wayland/meta-wayland.h
+++ b/src/wayland/meta-wayland.h
@@ -37,7 +37,7 @@ void meta_wayland_init (void);
void meta_wayland_finalize (void);
-MetaWaylandCompositor * meta_wayland_compositor_new (void);
+MetaWaylandCompositor * meta_wayland_compositor_new (MetaBackend *backend);
void meta_wayland_compositor_setup (MetaWaylandCompositor *compositor);