diff --git a/nw/gui/doceditor.py b/nw/gui/doceditor.py index bc83719b..e4a25e4e 100644 --- a/nw/gui/doceditor.py +++ b/nw/gui/doceditor.py @@ -646,6 +646,10 @@ class GuiDocEditor(QTextEdit): this class when calling these actions from other classes. """ logger.verbose("Requesting action: %s" % theAction.name) + if not self.hasFocus(): + logger.verbose("Editor does not have focus") + return False + if self.theHandle is None: logger.error("No document open") return False diff --git a/tests/test_gui/test_gui_doceditor.py b/tests/test_gui/test_gui_doceditor.py index ba435ad0..cb9f35d1 100644 --- a/tests/test_gui/test_gui_doceditor.py +++ b/tests/test_gui/test_gui_doceditor.py @@ -30,6 +30,7 @@ from PyQt5.QtCore import Qt from PyQt5.QtGui import QTextCursor from PyQt5.QtWidgets import QAction, QMessageBox +from nw.gui.doceditor import GuiDocEditor from nw.gui.projtree import GuiProjectTree from nw.constants import nwItemType, nwDocAction @@ -44,6 +45,7 @@ def testGuiEditor_Main(qtbot, monkeypatch, nwGUI, fncDir, fncProj, refDir, outDi # Block message box monkeypatch.setattr(QMessageBox, "question", lambda *args: QMessageBox.Yes) monkeypatch.setattr(GuiProjectTree, "hasFocus", lambda *args: True) + monkeypatch.setattr(GuiDocEditor, "hasFocus", lambda *args: True) # Create new, save, close project nwGUI.theProject.projTree.setSeed(42) @@ -353,6 +355,7 @@ def testGuiEditor_Search(qtbot, monkeypatch, nwGUI, nwLipsum): """ # Block message box monkeypatch.setattr(QMessageBox, "question", lambda *args: QMessageBox.Yes) + monkeypatch.setattr(GuiDocEditor, "hasFocus", lambda *args: True) nwGUI.theProject.projTree.setSeed(42) assert nwGUI.openProject(nwLipsum) diff --git a/tests/test_gui/test_gui_mainmenu.py b/tests/test_gui/test_gui_mainmenu.py index dcd32e91..f6504abf 100644 --- a/tests/test_gui/test_gui_mainmenu.py +++ b/tests/test_gui/test_gui_mainmenu.py @@ -27,6 +27,7 @@ from PyQt5.QtCore import Qt from PyQt5.QtGui import QTextCursor, QTextBlock from PyQt5.QtWidgets import QAction, QFileDialog, QMessageBox +from nw.gui.doceditor import GuiDocEditor from nw.constants import nwUnicode, nwDocAction, nwDocInsert, nwKeyWords keyDelay = 2 @@ -39,6 +40,7 @@ def testGuiMenu_EditFormat(qtbot, monkeypatch, nwGUI, nwLipsum): """ # Block message box monkeypatch.setattr(QMessageBox, "question", lambda *args: QMessageBox.Yes) + monkeypatch.setattr(GuiDocEditor, "hasFocus", lambda *args: True) # Test Document Action with No Project assert not nwGUI.docEditor.docAction(nwDocAction.COPY)