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 = [ ]
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()
# 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