diff --git a/lightdm_gtk_greeter_settings/Config.py b/lightdm_gtk_greeter_settings/Config.py index 9ff3fa0..b49621a 100644 --- a/lightdm_gtk_greeter_settings/Config.py +++ b/lightdm_gtk_greeter_settings/Config.py @@ -54,7 +54,9 @@ return if values and values[-1][0] == self._config._output_path: - if default is not None and value == default and len(values) == 1: + if len(values) > 1 and values[-2][1] == value: + del values[-1] + elif default is not None and value == default and len(values) == 1: values.clear() else: values[-1] = (self._config._output_path, value) diff --git a/lightdm_gtk_greeter_settings/OptionGroup.py b/lightdm_gtk_greeter_settings/OptionGroup.py index 9816b79..a7375e8 100644 --- a/lightdm_gtk_greeter_settings/OptionGroup.py +++ b/lightdm_gtk_greeter_settings/OptionGroup.py @@ -113,9 +113,7 @@ for key, entry in self._entries.items(): if changed and not changed(entry): continue - del config[self._name, key] - if entry.enabled: - config[self._name, key] = entry.value, self._get_default(key) + config[self._name, key] = entry.value if entry.enabled else None, self._get_default(key) def _get_entry(self, key): return self._entries.get(key)