From 6adb610f97e77dfc78ed1e2126b1b45e097f311e Mon Sep 17 00:00:00 2001 From: Paolo Capriotti Date: Mon, 25 Feb 2019 14:35:49 +0100 Subject: 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. --- qutebrowser/mainwindow/prompt.py | 11 ++++++++--- 1 file 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()) -- cgit v1.2.3-54-g00ecf