summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMario Sanchez Prada <mario@endlessm.com>2015-03-19 17:00:08 +0000
committerPhaedrus Leeds <mwleeds@endlessos.org>2021-01-08 09:52:45 -0800
commit9a89eb28f79ee4f8bbd5c61aa71a293f64fff6e6 (patch)
tree3deb62f202480d02e97476f9d60c198f9381602c
parent2814785ad364bdafca5fc98c223438cf2dc36a05 (diff)
downloadgnome-control-center-mwleeds/region-update-locale-format.tar.gz
region: update the locale format along with the language when it changesmwleeds/region-update-locale-format
Not doing this will lead to (probably undesired) inconsistencies when changing the language, since many locale-dependant strings will still be rendered considering the previous language format (e.g. days of the week). Note 2020-08-26: This patch has been in Endless OS since 2015, proposing it upstream. - mwleeds
-rw-r--r--panels/region/cc-region-panel.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/panels/region/cc-region-panel.c b/panels/region/cc-region-panel.c
index 7fe03ee64..3c8f03d34 100644
--- a/panels/region/cc-region-panel.c
+++ b/panels/region/cc-region-panel.c
@@ -80,6 +80,8 @@ struct _CcRegionPanel {
CC_PANEL_REGISTER (CcRegionPanel, cc_region_panel)
+static void update_region (CcRegionPanel *self, const gchar *region);
+
static void
cc_region_panel_finalize (GObject *object)
{
@@ -324,6 +326,9 @@ language_response (CcRegionPanel *self,
if (response_id == GTK_RESPONSE_OK) {
language = cc_language_chooser_get_language (chooser);
update_language (self, language);
+
+ /* Keep format strings consistent with the user's language */
+ update_region (self, NULL);
}
gtk_widget_destroy (GTK_WIDGET (chooser));
@@ -351,7 +356,10 @@ update_region (CcRegionPanel *self,
} else {
if (g_strcmp0 (region, self->region) == 0)
return;
- g_settings_set_string (self->locale_settings, KEY_REGION, region);
+ if (region == NULL || region[0] == '\0')
+ g_settings_reset (self->locale_settings, KEY_REGION);
+ else
+ g_settings_set_string (self->locale_settings, KEY_REGION, region);
if (self->login_auto_apply)
set_system_region (self, region);
maybe_notify (self, LC_TIME, region);