diff --git a/src/calibre/gui2/main_window.py b/src/calibre/gui2/main_window.py index e446a9bf8f..5cf198787a 100644 --- a/src/calibre/gui2/main_window.py +++ b/src/calibre/gui2/main_window.py @@ -75,6 +75,9 @@ class MainWindow(QMainWindow): __actions = [] keyboard_interrupt = pyqtSignal() + # See https://bugreports.qt-project.org/browse/QTBUG-42281 + window_blocked = pyqtSignal() + window_unblocked = pyqtSignal() @classmethod def create_application_menubar(cls): @@ -129,3 +132,12 @@ class MainWindow(QMainWindow): pass except: pass + + def event(self, ev): + # See https://bugreports.qt-project.org/browse/QTBUG-42281 + etype = ev.type() + if etype == ev.WindowBlocked: + self.window_blocked.emit() + elif etype == ev.WindowUnblocked: + self.window_unblocked.emit() + return QMainWindow.event(self, ev) diff --git a/src/calibre/gui2/tweak_book/ui.py b/src/calibre/gui2/tweak_book/ui.py index 0f785c067a..924bab7d8b 100644 --- a/src/calibre/gui2/tweak_book/ui.py +++ b/src/calibre/gui2/tweak_book/ui.py @@ -19,6 +19,7 @@ from PyQt5.Qt import ( from calibre import prints from calibre.constants import __appname__, get_version, isosx, DEBUG from calibre.gui2 import elided_text, open_url +from calibre.gui2.dbus_export.widgets import factory from calibre.gui2.keyboard import Manager as KeyboardManager from calibre.gui2.main_window import MainWindow from calibre.gui2.throbber import ThrobbingButton, create_donate_widget @@ -461,10 +462,12 @@ class Main(MainWindow): create_plugin_actions(actions, toolbar_actions, self.plugin_menu_actions) def create_menubar(self): - p, q = self.create_application_menubar() - q.triggered.connect(self.action_quit.trigger) - p.triggered.connect(self.action_preferences.trigger) - b = self.menuBar() + if isosx: + p, q = self.create_application_menubar() + q.triggered.connect(self.action_quit.trigger) + p.triggered.connect(self.action_preferences.trigger) + f = factory(app_id='com.calibre-ebook.EditBook-%d' % os.getpid()) + b = f.create_window_menubar(self) f = b.addMenu(_('&File')) f.addAction(self.action_new_file)