commit 3f2ba5ec2091b4130b2d7b2cf9364b7f33190c01
parent 3422d855c93f2fc8ad69a1241a75751e5453b7f0
Author: Neil Booth <kyuupichan@gmail.com>
Date: Sat, 2 Jan 2016 23:27:04 +0900
Fix QtHandler modality
Diffstat:
1 file changed, 4 insertions(+), 0 deletions(-)
diff --git a/plugins/trezor/qt_generic.py b/plugins/trezor/qt_generic.py
@@ -13,6 +13,8 @@ from electrum.plugins import hook
from electrum.util import PrintError
+# By far the trickiest thing about this handler is the window stack;
+# MacOSX is very fussy the modal dialogs are perfectly parented
class QtHandler(PrintError):
'''An interface between the GUI (here, QT) and the device handling
logic for handling I/O. This is a generic implementation of the
@@ -82,6 +84,7 @@ class QtHandler(PrintError):
self.clear_dialog()
title = _('Please check your %s device') % self.device
self.dialog = dialog = WindowModalDialog(self.window_stack[-1], title)
+ self.window_stack.append(dialog)
l = QLabel(msg)
vbox = QVBoxLayout(dialog)
if cancel_callback:
@@ -96,6 +99,7 @@ class QtHandler(PrintError):
def clear_dialog(self):
if self.dialog:
self.dialog.accept()
+ self.window_stack.remove(self.dialog)
self.dialog = None
def exec_dialog(self, dialog):