From 93b36406f1c0dc8e3ef5fd804efdacde77d39716 Mon Sep 17 00:00:00 2001 From: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com> Date: Mon, 27 Nov 2023 16:30:21 +0100 Subject: [PATCH] Make sure context menus are deleted after use --- novelwriter/gui/doceditor.py | 1 + novelwriter/gui/docviewer.py | 23 ++++++++++++----------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/novelwriter/gui/doceditor.py b/novelwriter/gui/doceditor.py index b3948228..3dfc5b41 100644 --- a/novelwriter/gui/doceditor.py +++ b/novelwriter/gui/doceditor.py @@ -1144,6 +1144,7 @@ class GuiDocEditor(QPlainTextEdit): # Execute the context menu ctxMenu.exec_(self.viewport().mapToGlobal(pos)) + ctxMenu.deleteLater() return diff --git a/novelwriter/gui/docviewer.py b/novelwriter/gui/docviewer.py index 5df05810..d548f0d4 100644 --- a/novelwriter/gui/docviewer.py +++ b/novelwriter/gui/docviewer.py @@ -378,33 +378,34 @@ class GuiDocViewer(QTextBrowser): userCursor = self.textCursor() userSelection = userCursor.hasSelection() - mnuContext = QMenu(self) + ctxMenu = QMenu(self) if userSelection: - mnuCopy = QAction(self.tr("Copy"), mnuContext) + mnuCopy = QAction(self.tr("Copy"), ctxMenu) mnuCopy.triggered.connect(lambda: self.docAction(nwDocAction.COPY)) - mnuContext.addAction(mnuCopy) + ctxMenu.addAction(mnuCopy) - mnuContext.addSeparator() + ctxMenu.addSeparator() - mnuSelAll = QAction(self.tr("Select All"), mnuContext) + mnuSelAll = QAction(self.tr("Select All"), ctxMenu) mnuSelAll.triggered.connect(lambda: self.docAction(nwDocAction.SEL_ALL)) - mnuContext.addAction(mnuSelAll) + ctxMenu.addAction(mnuSelAll) - mnuSelWord = QAction(self.tr("Select Word"), mnuContext) + mnuSelWord = QAction(self.tr("Select Word"), ctxMenu) mnuSelWord.triggered.connect( lambda: self._makePosSelection(QTextCursor.SelectionType.WordUnderCursor, point) ) - mnuContext.addAction(mnuSelWord) + ctxMenu.addAction(mnuSelWord) - mnuSelPara = QAction(self.tr("Select Paragraph"), mnuContext) + mnuSelPara = QAction(self.tr("Select Paragraph"), ctxMenu) mnuSelPara.triggered.connect( lambda: self._makePosSelection(QTextCursor.SelectionType.BlockUnderCursor, point) ) - mnuContext.addAction(mnuSelPara) + ctxMenu.addAction(mnuSelPara) # Open the context menu - mnuContext.exec_(self.viewport().mapToGlobal(point)) + ctxMenu.exec_(self.viewport().mapToGlobal(point)) + ctxMenu.deleteLater() return