summaryrefslogtreecommitdiff
path: root/gnome-settings-daemon
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2013-02-11 09:53:52 +0100
committerBastien Nocera <hadess@hadess.net>2013-02-15 16:02:27 +0100
commitaef9bb2e456d0115b372dacc48de484697e31e4b (patch)
tree352c4b5616e4e048200da7fe724a711712ad81b4 /gnome-settings-daemon
parentc3a7ffe3410918b8ca650b08580a0f5e90e97f4b (diff)
downloadgnome-settings-daemon-aef9bb2e456d0115b372dacc48de484697e31e4b.tar.gz
main: Set locale envvars on startup
When starting up, we tell gnome-session to set the environment variables for new starting programs, but we don't set the environment for our own children. Do this on start up, as soon as possible. https://bugzilla.gnome.org/show_bug.cgi?id=693381
Diffstat (limited to 'gnome-settings-daemon')
-rw-r--r--gnome-settings-daemon/main.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gnome-settings-daemon/main.c b/gnome-settings-daemon/main.c
index 087b63f8..673f9ed9 100644
--- a/gnome-settings-daemon/main.c
+++ b/gnome-settings-daemon/main.c
@@ -242,6 +242,27 @@ set_locale (GDBusProxy *proxy)
g_object_unref (locale_settings);
}
+/* Keep synchronised with set_locale() above */
+static void
+set_locale_env (void)
+{
+ GSettings *locale_settings;
+ gchar *region;
+
+ /* Set locale environment */
+ locale_settings = g_settings_new ("org.gnome.system.locale");
+ region = g_settings_get_string (locale_settings, "region");
+ if (region[0]) {
+ g_setenv ("LC_TIME", region, TRUE);
+ g_setenv ("LC_NUMERIC", region, TRUE);
+ g_setenv ("LC_MONETARY", region, TRUE);
+ g_setenv ("LC_MEASUREMENT", region, TRUE);
+ g_setenv ("LC_PAPER", region, TRUE);
+ }
+ g_free (region);
+ g_object_unref (locale_settings);
+}
+
static void
register_with_gnome_session (GDBusProxy *proxy)
{
@@ -468,6 +489,8 @@ main (int argc, char *argv[])
g_log_set_default_handler (gsd_log_default_handler, NULL);
+ set_locale_env ();
+
notify_init ("gnome-settings-daemon");
bus_register ();