From 357e5c92f22f6bebcd578c1b8e5517a186211f58 Mon Sep 17 00:00:00 2001 From: Sebastian Wick Date: Tue, 16 Jul 2024 19:53:09 +0200 Subject: [PATCH] backends: Let the color manager know about monitor changes earlier This makes it possible to set monitor/output properties before the stage views get re-created. Part-of: --- src/backends/meta-backend.c | 4 ++++ src/backends/meta-color-manager-private.h | 2 ++ src/backends/meta-color-manager.c | 10 ++-------- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c index b07103d80..da667867b 100644 --- a/src/backends/meta-backend.c +++ b/src/backends/meta-backend.c @@ -53,6 +53,7 @@ #include #include "backends/meta-barrier-private.h" +#include "backends/meta-color-manager-private.h" #include "backends/meta-cursor-renderer.h" #include "backends/meta-cursor-tracker-private.h" #include "backends/meta-dbus-session-watcher.h" @@ -353,6 +354,9 @@ update_cursors (MetaBackend *backend) void meta_backend_monitors_changed (MetaBackend *backend) { + MetaColorManager *color_manager = meta_backend_get_color_manager (backend); + + meta_color_manager_monitors_changed (color_manager); meta_backend_update_stage (backend); update_cursors (backend); } diff --git a/src/backends/meta-color-manager-private.h b/src/backends/meta-color-manager-private.h index ed6105bcb..e26435194 100644 --- a/src/backends/meta-color-manager-private.h +++ b/src/backends/meta-color-manager-private.h @@ -28,6 +28,8 @@ struct _MetaColorManagerClass GObjectClass parent_class; }; +void meta_color_manager_monitors_changed (MetaColorManager *color_manager); + CdClient * meta_color_manager_get_cd_client (MetaColorManager *color_manager); META_EXPORT_TEST diff --git a/src/backends/meta-color-manager.c b/src/backends/meta-color-manager.c index 92f4a5674..7a583789b 100644 --- a/src/backends/meta-color-manager.c +++ b/src/backends/meta-color-manager.c @@ -258,9 +258,8 @@ update_device_properties (MetaColorManager *color_manager) } } -static void -on_monitors_changed (MetaMonitorManager *monitor_manager, - MetaColorManager *color_manager) +void +meta_color_manager_monitors_changed (MetaColorManager *color_manager) { update_devices (color_manager); update_device_properties (color_manager); @@ -275,8 +274,6 @@ cd_client_connect_cb (GObject *source_object, MetaColorManager *color_manager = META_COLOR_MANAGER (user_data); MetaColorManagerPrivate *priv = meta_color_manager_get_instance_private (color_manager); - MetaMonitorManager *monitor_manager = - meta_backend_get_monitor_manager (priv->backend); g_autoptr (GError) error = NULL; if (!cd_client_connect_finish (client, res, &error)) @@ -295,9 +292,6 @@ cd_client_connect_cb (GObject *source_object, priv->color_store = meta_color_store_new (color_manager); update_devices (color_manager); - g_signal_connect (monitor_manager, "monitors-changed-internal", - G_CALLBACK (on_monitors_changed), - color_manager); priv->is_ready = TRUE; g_signal_emit (color_manager, signals[READY], 0);