diff -r a0f7800fbfcb -r 10839ab864e0 src/eric7/QScintilla/Shell.py --- a/src/eric7/QScintilla/Shell.py Fri Dec 23 10:58:36 2022 +0100 +++ b/src/eric7/QScintilla/Shell.py Fri Dec 23 11:35:54 2022 +0100 @@ -14,7 +14,7 @@ import sys from PyQt6.Qsci import QsciScintilla -from PyQt6.QtCore import QEvent, Qt, pyqtSignal, pyqtSlot +from PyQt6.QtCore import QEvent, QPoint, Qt, pyqtSignal, pyqtSlot from PyQt6.QtGui import QClipboard, QFont, QPalette, QShortcut from PyQt6.QtWidgets import ( QApplication, @@ -333,6 +333,9 @@ self.menu.addSeparator() self.menu.addAction(self.tr("Configure..."), self.__configure) + self.customContextMenuRequested.connect(self.__showContextMenu) + self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu) + self.__bindLexer() self.__setTextDisplay() self.__setMargin0() @@ -2014,15 +2017,16 @@ return QsciScintillaCompat.focusNextPrevChild(self, nextChild) - def contextMenuEvent(self, ev): + @pyqtSlot(QPoint) + def __showContextMenu(self, pos): """ - Protected method to show our own context menu. + Private slot to show a context menu. - @param ev context menu event (QContextMenuEvent) + @param pos position for the context menu + @type QPoint """ if not self.__windowed: - self.menu.popup(ev.globalPos()) - ev.accept() + self.menu.popup(self.mapToGlobal(pos)) def clear(self): """