lib/python/Components/config.py: fix bug (thx to adenin)
[enigma2.git] / lib / python / Components / config.py
index 24d39cbaeee8659b4553a506544a528e2bd9623a..e249caf4d3e80029a09d19c6f77066147c7a03f4 100755 (executable)
@@ -281,13 +281,13 @@ class ConfigSelection(ConfigElement):
 
                self._descr = None
                self.default = self._value = self.last_value = default
-               self.changed()
 
        def setChoices(self, choices, default = None):
                self.choices = choicesList(choices)
 
                if default is None:
                        default = self.choices.default()
+               self.default = default
 
                if self.value not in self.choices:
                        self.value = default
@@ -913,13 +913,14 @@ class ConfigText(ConfigElement, NumericalTextInput):
                        self.timeout()
                        self.overwrite = not self.overwrite
                elif key == KEY_ASCII:
-                       self.timeout()
-                       newChar = unichr(getPrevAsciiCode())
-                       if self.allmarked:
-                               self.deleteAllChars()
-                               self.allmarked = False
-                       self.insertChar(newChar, self.marked_pos, False)
-                       self.marked_pos += 1
+                       self.timeout()
+                       newChar = unichr(getPrevAsciiCode())
+                       if not self.useableChars or newChar in self.useableChars:
+                               if self.allmarked:
+                                       self.deleteAllChars()
+                                       self.allmarked = False
+                               self.insertChar(newChar, self.marked_pos, False)
+                               self.marked_pos += 1
                elif key in KEY_NUMBERS:
                        owr = self.lastKey == getKeyNumber(key)
                        newChar = self.getKey(getKeyNumber(key))
@@ -1493,7 +1494,7 @@ class ConfigSubDict(dict, object):
                self.stored_values = dict(values)
                for (key, val) in self.items():
                        if str(key) in self.stored_values:
-                               val = self.stored_values[str(key)]
+                               val.saved_value = self.stored_values[str(key)]
 
        saved_value = property(getSavedValue, setSavedValue)