summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ådahl <jadahl@gmail.com>2021-11-30 08:22:33 +0100
committerJonas Ådahl <jadahl@gmail.com>2022-09-01 16:54:04 +0200
commit8826b29329b7fb3a1340b42a5f94c49e49c757f5 (patch)
tree918058ad396f2ec59ed26637d83577e288050003
parent41ebf3b1bfad01774cc4dc5941e1df1c0ccb1b3c (diff)
downloadmutter-8826b29329b7fb3a1340b42a5f94c49e49c757f5.tar.gz
color-manager: Add ready state
Ready means it has established the connection to colord and can operate. Will be used by tests to make sure tests don't fail due to race conditions when connecting to colord. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2164>
-rw-r--r--src/backends/meta-color-manager-private.h3
-rw-r--r--src/backends/meta-color-manager.c13
2 files changed, 16 insertions, 0 deletions
diff --git a/src/backends/meta-color-manager-private.h b/src/backends/meta-color-manager-private.h
index db5d425e9..aa0904533 100644
--- a/src/backends/meta-color-manager-private.h
+++ b/src/backends/meta-color-manager-private.h
@@ -29,4 +29,7 @@ struct _MetaColorManagerClass
CdClient * meta_color_manager_get_cd_client (MetaColorManager *color_manager);
+META_EXPORT_TEST
+gboolean meta_color_manager_is_ready (MetaColorManager *color_manager);
+
#endif /* META_COLOR_MANAGER_PRIVATE_H */
diff --git a/src/backends/meta-color-manager.c b/src/backends/meta-color-manager.c
index 6f7ac24bf..3bc31644e 100644
--- a/src/backends/meta-color-manager.c
+++ b/src/backends/meta-color-manager.c
@@ -74,6 +74,8 @@ typedef struct _MetaColorManagerPrivate
GHashTable *devices;
MetaDbusSettingsDaemonColor *gsd_color;
+
+ gboolean is_ready;
} MetaColorManagerPrivate;
G_DEFINE_TYPE_WITH_PRIVATE (MetaColorManager, meta_color_manager, G_TYPE_OBJECT)
@@ -203,6 +205,8 @@ cd_client_connect_cb (GObject *source_object,
g_signal_connect (monitor_manager, "monitors-changed-internal",
G_CALLBACK (on_monitors_changed),
color_manager);
+
+ priv->is_ready = TRUE;
}
static void
@@ -367,3 +371,12 @@ meta_color_manager_get_color_device (MetaColorManager *color_manager,
monitor_id = generate_monitor_id (monitor);
return g_hash_table_lookup (priv->devices, monitor_id);
}
+
+gboolean
+meta_color_manager_is_ready (MetaColorManager *color_manager)
+{
+ MetaColorManagerPrivate *priv =
+ meta_color_manager_get_instance_private (color_manager);
+
+ return priv->is_ready;
+}