* Let Esc key close KanjiDic only when not running standalone.
authorUrban Wallasch <urban.wallasch@freenet.de>
Tue, 22 Jun 2021 11:26:24 +0000 (13:26 +0200)
committerUrban Wallasch <urban.wallasch@freenet.de>
Tue, 22 Jun 2021 11:26:24 +0000 (13:26 +0200)
jiten-pai.py
kanjidic.py

index 368b9b2d13fa6196fd01db6844a773b1f5b94fac..90a1bddc45069513b000d972c836cb769e5c6cf1 100755 (executable)
@@ -1176,7 +1176,7 @@ class jpMainWindow(QMainWindow):
 
     def kanjidic(self, kanji=''):
         if not self.kanji_dlg:
-            self.kanji_dlg = kdMainWindow(self)
+            self.kanji_dlg = kdMainWindow(parent=self)
             self.kanji_dlg.kanji_click.connect(self.kanjidic_clicked)
         self.kanji_dlg.show_info(kanji)
         self.kanji_dlg.showNormal()
index 882ff93b1eaa01db14175844c74974761c8b52fb..b04172fba4533b393452ca894ccbb6898c8fdee7 100755 (executable)
@@ -530,8 +530,9 @@ class kdMainWindow(QDialog):
     kanji_click = pyqtSignal(str)
     dic_ok = True
 
-    def __init__(self, *args, title=_KANJIDIC_NAME + ' ' + _KANJIDIC_VERSION, **kwargs):
+    def __init__(self, *args, parent=None, title=_KANJIDIC_NAME + ' ' + _KANJIDIC_VERSION, **kwargs):
         super().__init__(*args, **kwargs)
+        self._parent = parent
         self.setModal(False)
         self.setParent(None, self.windowFlags() & ~Qt.WindowStaysOnTopHint)
         self.init_cfg()
@@ -556,7 +557,6 @@ class kdMainWindow(QDialog):
         self.rad_search_check.setChecked(False)
         QShortcut('Ctrl+Q', self).activated.connect(lambda: self.close())
         QShortcut('Ctrl+W', self).activated.connect(lambda: self.close())
-        QShortcut('Esc', self).activated.connect(lambda: self.close())
 
     def init_cfg(self):
         _load_cfg()
@@ -632,6 +632,10 @@ class kdMainWindow(QDialog):
         main_layout.addSpacing(10)
         main_layout.addWidget(self.info_group, 40)
 
+    def keyPressEvent(self, event):
+        if event.key() != Qt.Key_Escape or self._parent:
+            super().keyPressEvent(event)
+
     def show_error(self, msg=''):
         msg = '<span style="color:red;">%s</span>\n' % msg
         self.info_pane.setHtml(self.info_pane.toHtml() + msg)
@@ -644,10 +648,10 @@ class kdMainWindow(QDialog):
         self.radlist.show()
         self.radlist.activateWindow()
 
-    def closeEvent(self, event):
+    def reject(self):
         if self.radlist:
             self.radlist.close()
-        event.accept()
+        super().reject()
 
     def stroke_search_toggle(self):
         en = self.stroke_search_check.isChecked()