diff options
author | Paolo Capriotti <paolo@capriotti.io> | 2019-02-25 14:35:49 +0100 |
---|---|---|
committer | Paolo Capriotti <paolo@capriotti.io> | 2019-02-25 14:48:04 +0100 |
commit | 36afc5881f4c2cd48967c686467fb7ed9df3b25f (patch) | |
tree | 3f8fd1908f6349ba1d81670d3ea1f161f211396b /qutebrowser/mainwindow/prompt.py | |
parent | 32f8349fbb1783930bac1734c47bb8c9467e29a5 (diff) | |
download | qutebrowser-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.py | 11 |
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()) |