From f5757045aa025443353d9aaf6f9f13e336205d5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Mon, 5 Dec 2022 19:38:08 +0100 Subject: [PATCH] manager: Don't load theme in constructor Loading the theme can trigger calls to fbd_feedback_manager_get_default() which then results in an endless look as the object isn't fully initialized in constructed. Instead do the setup in main() which has the advantage that the manager's life cycle becomes more obvious too. --- src/fbd-feedback-manager.c | 2 -- src/fbd.c | 6 ++++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fbd-feedback-manager.c b/src/fbd-feedback-manager.c index a8f45e4..03cb947 100644 --- a/src/fbd-feedback-manager.c +++ b/src/fbd-feedback-manager.c @@ -439,8 +439,6 @@ fbd_feedback_manager_constructed (GObject *object) G_OBJECT_CLASS (fbd_feedback_manager_parent_class)->constructed (object); - fbd_feedback_manager_load_theme(self); - g_signal_connect (self, "notify::profile", (GCallback)on_profile_changed, NULL); self->settings = g_settings_new (FEEDBACKD_SCHEMA_ID); diff --git a/src/fbd.c b/src/fbd.c index b6cc586..b1bb320 100644 --- a/src/fbd.c +++ b/src/fbd.c @@ -92,6 +92,7 @@ int main(int argc, char *argv[]) { g_autoptr(GError) err = NULL; g_autoptr(GOptionContext) opt_context = NULL; + g_autoptr (FbdFeedbackManager) manager = NULL; opt_context = g_option_context_new ("- A daemon to trigger event feedback"); if (!g_option_context_parse (opt_context, &argc, &argv, &err)) { @@ -100,6 +101,9 @@ int main(int argc, char *argv[]) return 1; } + manager = fbd_feedback_manager_get_default (); + fbd_feedback_manager_load_theme (manager); + g_unix_signal_add (SIGTERM, quit_cb, NULL); g_unix_signal_add (SIGINT, quit_cb, NULL); g_unix_signal_add (SIGHUP, reload_cb, NULL); @@ -117,6 +121,4 @@ int main(int argc, char *argv[]) g_main_loop_run (loop); g_main_loop_unref (loop); - - g_object_unref (fbd_feedback_manager_get_default ()); }