aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arctica-greeter.vala10
-rw-r--r--src/settings.vala11
2 files changed, 20 insertions, 1 deletions
diff --git a/src/arctica-greeter.vala b/src/arctica-greeter.vala
index 96a98ce..09c1feb 100644
--- a/src/arctica-greeter.vala
+++ b/src/arctica-greeter.vala
@@ -807,6 +807,16 @@ public class ArcticaGreeter
if (value != "")
settings.set ("gtk-xft-rgba", value, null);
+ /*
+ * Keep a reference to an AGSettings instance for the whole program
+ * run, so that the SingleInstance property is working the way we'd
+ * like it to work.
+ *
+ * We want to do this before creating the actual greeter, since the
+ * latter is using AGSettings quite extensively.
+ */
+ var agsettings = new AGSettings ();
+
debug ("Creating Arctica Greeter");
var greeter = new ArcticaGreeter (do_test_mode);
diff --git a/src/settings.vala b/src/settings.vala
index 701d5a1..3c50bbc 100644
--- a/src/settings.vala
+++ b/src/settings.vala
@@ -2,6 +2,7 @@
*
* Copyright (C) 2011,2012 Canonical Ltd
* Copyright (C) 2015,2017 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+ * Copyright (C) 2022 Mihai Moldovan <ionic@ionic.de>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as
@@ -20,7 +21,8 @@
* Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
*/
-public class AGSettings
+[SingleInstance]
+public class AGSettings : Object
{
public const string KEY_BACKGROUND = "background";
public const string KEY_BACKGROUND_COLOR = "background-color";
@@ -105,5 +107,12 @@ public class AGSettings
return gsettings.set_strv (key, value);
}
+ public AGSettings ()
+ {
+ }
+
+ construct {
+ }
+
private const string SCHEMA = "org.ArcticaProject.arctica-greeter";
}