From: Zwarf <zwarf@mail.de>
Date: Mon, 6 Jan 2025 21:59:19 +0100
Subject: Fix an issue with the app not starting under GTK 4.17

(cherry picked from commit b0ec64f165b989dac0dac6526ab1e160b3980268)

Origin: upstream, after 0.5.0
---
 src/picplanner-application.c | 60 ++++++++++++++++++++++----------------------
 1 file changed, 30 insertions(+), 30 deletions(-)

diff --git a/src/picplanner-application.c b/src/picplanner-application.c
index 22dbb15..812edbe 100644
--- a/src/picplanner-application.c
+++ b/src/picplanner-application.c
@@ -54,6 +54,33 @@ first_run_set_timezone (PicplannerApplication *application)
   g_date_time_unref (date_time);
 }
 
+/*
+ * Inverte the color scheme (light/dark) dependent on which scheme is set globaly
+ */
+static void
+picplanner_inverte_scheme (GSettings *settings,
+                           gchar *key,
+                           gpointer user_data)
+{
+  PicplannerApplication *app = user_data;
+  AdwStyleManager *manager = adw_application_get_style_manager (ADW_APPLICATION (app));
+  gboolean invert_scheme = g_settings_get_boolean (settings, "invert-scheme");
+
+  (void) key;
+
+  if (invert_scheme)
+    {
+      if (adw_style_manager_get_dark (manager))
+          adw_style_manager_set_color_scheme (manager, ADW_COLOR_SCHEME_FORCE_LIGHT);
+      else
+          adw_style_manager_set_color_scheme (manager, ADW_COLOR_SCHEME_FORCE_DARK);
+    }
+  else
+    {
+      adw_style_manager_set_color_scheme (manager, ADW_COLOR_SCHEME_DEFAULT);
+    }
+}
+
 
 PicplannerApplication *
 picplanner_application_new (gchar *application_id,
@@ -77,6 +104,7 @@ static void
 picplanner_application_activate (GApplication *app)
 {
   GtkWindow *window;
+  PicplannerApplication *self;
   /* It's good practice to check your parameters at the beginning of the
    * function. It helps catch errors early and in development instead of
    * by your users.
@@ -92,6 +120,8 @@ picplanner_application_activate (GApplication *app)
                            "default-height", 800,
                            NULL);
 
+  self = PICPLANNER_APPLICATION (app);
+  picplanner_inverte_scheme (self->settings, NULL, self);
 
   /* Ask the window manager/compositor to present the window. */
   gtk_window_present (window);
@@ -175,34 +205,6 @@ picplanner_application_show_preferences (GSimpleAction  *action,
 }
 
 
-/*
- * Inverte the color scheme (light/dark) dependent on which scheme is set globaly
- */
-static void
-picplanner_inverte_scheme (GSettings *settings,
-                           gchar *key,
-                           gpointer user_data)
-{
-  PicplannerApplication *app = user_data;
-  AdwStyleManager *manager = adw_application_get_style_manager (ADW_APPLICATION (app));
-  gboolean invert_scheme = g_settings_get_boolean (settings, "invert-scheme");
-
-  (void) key;
-
-  if (invert_scheme)
-    {
-      if (adw_style_manager_get_dark (manager))
-          adw_style_manager_set_color_scheme (manager, ADW_COLOR_SCHEME_FORCE_LIGHT);
-      else
-          adw_style_manager_set_color_scheme (manager, ADW_COLOR_SCHEME_FORCE_DARK);
-    }
-  else
-    {
-      adw_style_manager_set_color_scheme (manager, ADW_COLOR_SCHEME_DEFAULT);
-    }
-}
-
-
 static void
 picplanner_application_init (PicplannerApplication *self)
 {
@@ -229,8 +231,6 @@ picplanner_application_init (PicplannerApplication *self)
   if (g_settings_get_boolean (self->settings, "first-run"))
     first_run_set_timezone(self);
 
-  picplanner_inverte_scheme (self->settings, NULL, self);
-
   g_signal_connect (G_OBJECT (self->settings),
                     "changed::invert-scheme",
                     G_CALLBACK (picplanner_inverte_scheme),
