summaryrefslogtreecommitdiff
path: root/qutebrowser/mainwindow/prompt.py
diff options
context:
space:
mode:
authorPaolo Capriotti <paolo@capriotti.io>2019-02-25 14:35:49 +0100
committerPaolo Capriotti <paolo@capriotti.io>2019-02-25 14:48:04 +0100
commit36afc5881f4c2cd48967c686467fb7ed9df3b25f (patch)
tree3f8fd1908f6349ba1d81670d3ea1f161f211396b /qutebrowser/mainwindow/prompt.py
parent32f8349fbb1783930bac1734c47bb8c9467e29a5 (diff)
downloadqutebrowser-36afc5881f4c2cd48967c686467fb7ed9df3b25f.tar.gz
qutebrowser-36afc5881f4c2cd48967c686467fb7ed9df3b25f.zip
Fix crash when closing prompt
If a window is closed when a prompt is displayed on all windows, leaving prompt mode later would cause a crash. This patch fixes the crash simply by ignoring the RegistryUnavailableError caused by looking up a non-existent window. Fixes #3378.
Diffstat (limited to 'qutebrowser/mainwindow/prompt.py')
-rw-r--r--qutebrowser/mainwindow/prompt.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py
index 4f9457acd..166e3f283 100644
--- a/qutebrowser/mainwindow/prompt.py
+++ b/qutebrowser/mainwindow/prompt.py
@@ -331,9 +331,14 @@ class PromptContainer(QWidget):
if not question.interrupted:
# If this question was interrupted, we already connected the signal
- question.aborted.connect(
- lambda: modeman.leave(self._win_id, prompt.KEY_MODE, 'aborted',
- maybe=True))
+ def on_aborted():
+ try:
+ modeman.leave(self._win_id, prompt.KEY_MODE,
+ 'aborted', maybe=True)
+ except objreg.RegistryUnavailableError:
+ # window was deleted: ignore
+ pass
+ question.aborted.connect(on_aborted)
modeman.enter(self._win_id, prompt.KEY_MODE, 'question asked')
self.setSizePolicy(prompt.sizePolicy())