diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 329df37617..0f744e3708 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -1289,15 +1289,3 @@ def event_type_name(ev_or_etype): if num == etype: return name return 'UnknownEventType' - -if islinux or isbsd: - def workaround_broken_under_mouse(ch): - import sip - from PyQt5.Qt import QCursor, QToolButton - # See https://bugreports.qt-project.org/browse/QTBUG-40233 - if isinstance(ch, QToolButton) and not sip.isdeleted(ch): - ch.setAttribute(Qt.WA_UnderMouse, ch.rect().contains(ch.mapFromGlobal(QCursor.pos()))) - ch.update() -else: - workaround_broken_under_mouse = None - diff --git a/src/calibre/gui2/bars.py b/src/calibre/gui2/bars.py index ea854a54a6..6b0c13e54e 100644 --- a/src/calibre/gui2/bars.py +++ b/src/calibre/gui2/bars.py @@ -7,15 +7,13 @@ __license__ = 'GPL v3' __copyright__ = '2011, Kovid Goyal ' __docformat__ = 'restructuredtext en' -from functools import partial - import sip from PyQt5.Qt import ( Qt, QAction, QMenu, QObject, QToolBar, QToolButton, QSize, pyqtSignal, QTimer) from calibre.constants import isosx from calibre.gui2.throbber import create_donate_widget -from calibre.gui2 import gprefs, workaround_broken_under_mouse, native_menubar_defaults +from calibre.gui2 import gprefs, native_menubar_defaults class ToolBar(QToolBar): # {{{ @@ -110,8 +108,6 @@ class ToolBar(QToolBar): # {{{ ch.setAutoRaise(True) m = ac.menu() if m is not None: - if workaround_broken_under_mouse is not None: - m.aboutToHide.connect(partial(workaround_broken_under_mouse, ch)) if menu_mode is not None: ch.setPopupMode(menu_mode) return ch diff --git a/src/calibre/gui2/tweak_book/editor/widget.py b/src/calibre/gui2/tweak_book/editor/widget.py index b8588a19bd..ac22e2c601 100644 --- a/src/calibre/gui2/tweak_book/editor/widget.py +++ b/src/calibre/gui2/tweak_book/editor/widget.py @@ -19,7 +19,7 @@ from calibre.ebooks.chardet import replace_encoding_declarations from calibre.gui2.tweak_book import ( actions, current_container, tprefs, dictionaries, editor_toolbar_actions, editor_name, editors, update_mark_text_action) -from calibre.gui2 import error_dialog, open_url, workaround_broken_under_mouse +from calibre.gui2 import error_dialog, open_url from calibre.gui2.tweak_book.editor import SPELL_PROPERTY, LINK_PROPERTY, TAG_NAME_PROPERTY, CSS_PROPERTY from calibre.gui2.tweak_book.editor.help import help_url from calibre.gui2.tweak_book.editor.text import TextEdit @@ -340,19 +340,11 @@ class Editor(QMainWindow): w.setContextMenuPolicy(Qt.CustomContextMenu) w.customContextMenuRequested.connect(w.showMenu) self._build_insert_tag_button_menu() - if workaround_broken_under_mouse is not None: - try: - self.insert_tag_menu.aboutToHide.disconnect() - except TypeError: - pass - self.insert_tag_menu.aboutToHide.connect(partial(workaround_broken_under_mouse, w)) elif name == 'change-paragraph': m = ac.m = QMenu() ac.setMenu(m) ch = bar.widgetForAction(ac) ch.setPopupMode(QToolButton.InstantPopup) - if workaround_broken_under_mouse is not None: - m.aboutToHide.connect(partial(workaround_broken_under_mouse, ch)) for name in tuple('h%d' % d for d in range(1, 7)) + ('p',): m.addAction(actions['rename-block-tag-%s' % name]) diff --git a/src/calibre/gui2/viewer/ui.py b/src/calibre/gui2/viewer/ui.py index 638d00264f..f38ae6c3be 100644 --- a/src/calibre/gui2/viewer/ui.py +++ b/src/calibre/gui2/viewer/ui.py @@ -7,7 +7,6 @@ __license__ = 'GPL v3' __copyright__ = '2014, Kovid Goyal ' import textwrap -from functools import partial from PyQt5.Qt import ( QIcon, QWidget, Qt, QGridLayout, QScrollBar, QToolBar, QAction, @@ -15,7 +14,7 @@ from PyQt5.Qt import ( QRegExpValidator, QRegExp, QPalette, QColor, QBrush, QPainter, QDockWidget, QSize, QWebView, QLabel, QVBoxLayout) -from calibre.gui2 import rating_font, workaround_broken_under_mouse +from calibre.gui2 import rating_font from calibre.gui2.main_window import MainWindow from calibre.gui2.search_box import SearchBox2 from calibre.gui2.viewer.documentview import DocumentView @@ -336,13 +335,6 @@ class Main(MainWindow): self.resize(653, 746) - if workaround_broken_under_mouse is not None: - for bar in (self.tool_bar, self.tool_bar2): - for ac in bar.actions(): - m = ac.menu() - if m is not None: - m.aboutToHide.connect(partial(workaround_broken_under_mouse, bar.widgetForAction(ac))) - def resizeEvent(self, ev): if self.metadata.isVisible(): self.metadata.update_layout()