From 242c6b39353c18564993022d46560e0d29c6526b Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Tue, 24 Apr 2007 13:07:43 +0000 Subject: [PATCH] better (and more correct) fix --- lib/python/Screens/Screen.py | 8 ++++++-- mytest.py | 6 +----- 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 -- 2.30.2