summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgui.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/gui.py b/gui.py
index 69559b94d..4de661a9f 100755
--- a/gui.py
+++ b/gui.py
@@ -1352,7 +1352,7 @@ class InstallControlWindow:
(file, className) = stepToClass[step]
newScreenClass = None
- while 1:
+ while True:
try:
found = imputil.imp.find_module(file)
loaded = imputil.imp.load_module(className, found[0], found[1],
@@ -1386,8 +1386,18 @@ class InstallControlWindow:
self.currentWindow = newScreenClass(ics)
new_screen = self.currentWindow.getScreen(anaconda)
+
+ # If the getScreen method returned None, that means the screen did not
+ # want to be displayed for some reason and we should skip to the next
+ # step. However, we do not want to remove the current step from the
+ # list as later events may cause the screen to be displayed.
if not new_screen:
- return
+ if self.anaconda.dispatch.dir == DISPATCH_FORWARD:
+ self.anaconda.dispatch.gotoNext()
+ else:
+ self.anaconda.dispatch.gotoPrev()
+
+ return self.setScreen()
self.update (ics)