From fb764c8e53e17bc3e1e806e946956f3e70792020 Mon Sep 17 00:00:00 2001 From: Andreas Oberritter Date: Thu, 20 Jan 2011 00:59:45 +0100 Subject: make switching of keyboard modes more consistent --- lib/python/Screens/Screen.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'lib/python/Screens/Screen.py') diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index f0bf773d..fa6999a0 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -6,6 +6,8 @@ profile("LOAD:Source") from Components.Sources.Source import Source profile("LOAD:GUIComponent") from Components.GUIComponent import GUIComponent +profile("LOAD:eRCInput") +from enigma import eRCInput class Screen(dict, GUISkin): @@ -47,6 +49,27 @@ class Screen(dict, GUISkin): # don't care about having or not having focus. self.stand_alone = False + self.onShow.append(self.saveKeyboardMode); + self.onHide.append(self.restoreKeyboardMode) + self.keyboardMode = None + + def saveKeyboardMode(self): + rcinput = eRCInput.getInstance() + self.keyboardMode = rcinput.getKeyboardMode() + + def setKeyboardModeAscii(self): + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmAscii) + + def setKeyboardModeNone(self): + rcinput = eRCInput.getInstance() + rcinput.setKeyboardMode(rcinput.kmNone) + + def restoreKeyboardMode(self): + rcinput = eRCInput.getInstance() + if self.keyboardMode is not None: + rcinput.setKeyboardMode(self.keyboardMode) + def execBegin(self): self.active_components = [ ] if self.close_on_next_exec is not None: -- cgit v1.2.3 From 958cfa17e6c409ffadf945101dc104923ec5d418 Mon Sep 17 00:00:00 2001 From: Andreas Oberritter Date: Thu, 31 Mar 2011 17:53:52 +0200 Subject: InputBox/Screen: remove trailing semicolon --- lib/python/Screens/InputBox.py | 4 ++-- lib/python/Screens/Screen.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'lib/python/Screens/Screen.py') diff --git a/lib/python/Screens/InputBox.py b/lib/python/Screens/InputBox.py index 914ab2b8..13797687 100644 --- a/lib/python/Screens/InputBox.py +++ b/lib/python/Screens/InputBox.py @@ -43,9 +43,9 @@ class InputBox(Screen): }, -1) if self["input"].type == Input.TEXT: - self.onShow.append(self.setKeyboardModeAscii); + self.onShow.append(self.setKeyboardModeAscii) else: - self.onShow.append(self.setKeyboardModeNone); + self.onShow.append(self.setKeyboardModeNone) def gotAsciiCode(self): self["input"].handleAscii(getPrevAsciiCode()) diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index fa6999a0..32101869 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -49,7 +49,7 @@ class Screen(dict, GUISkin): # don't care about having or not having focus. self.stand_alone = False - self.onShow.append(self.saveKeyboardMode); + self.onShow.append(self.saveKeyboardMode) self.onHide.append(self.restoreKeyboardMode) self.keyboardMode = None -- cgit v1.2.3 From 348cf0e4d7fa1e615635984c9325fc0e8fa4e72b Mon Sep 17 00:00:00 2001 From: Andreas Oberritter Date: Fri, 1 Apr 2011 01:40:21 +0200 Subject: fix commit fb764c8e53e17bc3e1e806e946956f3e70792020 (fixes PiP) --- lib/python/Screens/InputBox.py | 4 ++-- lib/python/Screens/Screen.py | 3 --- mytest.py | 2 ++ 3 files changed, 4 insertions(+), 5 deletions(-) (limited to 'lib/python/Screens/Screen.py') diff --git a/lib/python/Screens/InputBox.py b/lib/python/Screens/InputBox.py index 13797687..7dd7b127 100644 --- a/lib/python/Screens/InputBox.py +++ b/lib/python/Screens/InputBox.py @@ -43,9 +43,9 @@ class InputBox(Screen): }, -1) if self["input"].type == Input.TEXT: - self.onShow.append(self.setKeyboardModeAscii) + self.onExecBegin.append(self.setKeyboardModeAscii) else: - self.onShow.append(self.setKeyboardModeNone) + self.onExecBegin.append(self.setKeyboardModeNone) def gotAsciiCode(self): self["input"].handleAscii(getPrevAsciiCode()) diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py index 32101869..4a0accda 100644 --- a/lib/python/Screens/Screen.py +++ b/lib/python/Screens/Screen.py @@ -48,9 +48,6 @@ class Screen(dict, GUISkin): # stand alone screens (for example web screens) # don't care about having or not having focus. self.stand_alone = False - - self.onShow.append(self.saveKeyboardMode) - self.onHide.append(self.restoreKeyboardMode) self.keyboardMode = None def saveKeyboardMode(self): diff --git a/mytest.py b/mytest.py index 7a8d7b70..99695e05 100755 --- a/mytest.py +++ b/mytest.py @@ -214,6 +214,7 @@ class Session: self.summary.show() c.addSummary(self.summary) + c.saveKeyboardMode() c.execBegin() # when execBegin opened a new dialog, don't bother showing the old one. @@ -225,6 +226,7 @@ class Session: self.in_exec = False self.current_dialog.execEnd() + self.current_dialog.restoreKeyboardMode() self.current_dialog.hide() if last: -- cgit v1.2.3