diff -r a0f7800fbfcb -r 10839ab864e0 src/eric7/WebBrowser/QtHelp/HelpSearchWidget.py --- a/src/eric7/WebBrowser/QtHelp/HelpSearchWidget.py Fri Dec 23 10:58:36 2022 +0100 +++ b/src/eric7/WebBrowser/QtHelp/HelpSearchWidget.py Fri Dec 23 11:35:54 2022 +0100 @@ -7,7 +7,7 @@ Module implementing a window for showing the QtHelp index. """ -from PyQt6.QtCore import Qt, QUrl, pyqtSignal, pyqtSlot +from PyQt6.QtCore import QPoint, Qt, QUrl, pyqtSignal, pyqtSlot from PyQt6.QtGui import QClipboard, QGuiApplication from PyQt6.QtWidgets import QApplication, QMenu, QTextBrowser, QVBoxLayout, QWidget @@ -70,6 +70,9 @@ self.__browser = self.__result.findChildren(QTextBrowser)[0] + self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) + self.customContextMenuRequested.connect(self.__showContextMenu) + def __search(self): """ Private slot to perform a search of the database. @@ -137,13 +140,15 @@ else: evt.ignore() - def contextMenuEvent(self, evt): + @pyqtSlot(QPoint) + def __showContextMenu(self, pos): """ - Protected method handling context menu events. + Private slot to show a context menu. - @param evt reference to the context menu event (QContextMenuEvent) + @param pos position for the context menu + @type QPoint """ - point = evt.globalPos() + point = self.mapToGlobal(pos) if self.__browser: point = self.__browser.mapFromGlobal(point) @@ -168,9 +173,8 @@ newWindow = menu.addAction(self.tr("Open Link in New Window")) menu.addSeparator() copyLink = menu.addAction(self.tr("Copy URL to Clipboard")) - menu.move(evt.globalPos()) - act = menu.exec() + act = menu.exec(self.mapToGlobal(pos)) if act == curTab: self.openUrl.emit(link) elif act == newTab: