aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/python/Screens/Screen.py8
-rw-r--r--mytest.py6
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/python/Screens/Screen.py b/lib/python/Screens/Screen.py
index a6106e1e..cfcb5284 100644
--- a/lib/python/Screens/Screen.py
+++ b/lib/python/Screens/Screen.py
@@ -22,7 +22,10 @@ class Screen(dict, HTMLSkin, GUISkin):
self.onHide = [ ]
self.execing = False
+
self.shown = True
+ # already shown is false until the screen is really shown (after creation)
+ self.already_shown = False
self.renderer = [ ]
@@ -113,10 +116,11 @@ class Screen(dict, HTMLSkin, GUISkin):
def setFocus(self, o):
self.instance.setFocus(o.instance)
- def show(self, force = False):
- if (self.shown and not force) or not self.instance:
+ def show(self):
+ if (self.shown and self.already_shown) or not self.instance:
return
self.shown = True
+ self.already_shown = True
self.instance.show()
for x in self.onShow:
x()
diff --git a/mytest.py b/mytest.py
index 452dd3d7..8d8036b9 100644
--- a/mytest.py
+++ b/mytest.py
@@ -173,11 +173,7 @@ class Session:
# when execBegin opened a new dialog, don't bother showing the old one.
if c == self.current_dialog and do_show:
- # this is the first show() for each screen.
- # screen.shown is already true, because that resembles the state
- # ("not-yet-shown-but-will-be-shown") best, so c.show() would just do nothing.
- # show(force=True) will show in any case.
- c.show(force = True)
+ c.show()
def execEnd(self, last=True):
assert self.in_exec