[LyX/master] #11756 hide additional menu items in edit menu on Mac

Stephan Witt switt at lyx.org
Sun Aug 30 08:59:02 UTC 2020


commit 1c5a2fc0eca71488aed2bb7fb3ac34368f4482e5
Author: Stephan Witt <switt at lyx.org>
Date:   Sun Aug 30 11:24:04 2020 +0200

    #11756 hide additional menu items in edit menu on Mac
    
    Mac OS adds two extra menu entries to the edit menu.
    These menu items are:
    1. Start Dictation...
    2. Emoji & Symbols
    Both menu items don't work with LyX.
    Therefore they shouldn't be present and the new code hides them.
---
 src/frontends/qt/GuiApplication.cpp |    2 ++
 src/support/AppleSupport.h          |   23 +++++++++++++++++++++++
 src/support/AppleSupport.m          |   23 +++++++++++++++++++++++
 src/support/CMakeLists.txt          |    1 +
 src/support/Makefile.am             |    2 ++
 5 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/src/frontends/qt/GuiApplication.cpp b/src/frontends/qt/GuiApplication.cpp
index 76cf364..64d2577 100644
--- a/src/frontends/qt/GuiApplication.cpp
+++ b/src/frontends/qt/GuiApplication.cpp
@@ -78,6 +78,7 @@
 
 #ifdef Q_OS_MAC
 #include "support/AppleScript.h"
+#include "support/AppleSupport.h"
 #include "support/linkback/LinkBackProxy.h"
 #endif
 
@@ -1032,6 +1033,7 @@ GuiApplication::GuiApplication(int & argc, char ** argv)
 	setQuitOnLastWindowClosed(false);
 	///
 	setupApplescript();
+	appleCleanupEditMenu();
 #endif
 
 #if defined(Q_WS_X11) || defined(QPA_XCB)
diff --git a/src/support/AppleSupport.h b/src/support/AppleSupport.h
new file mode 100644
index 0000000..a6da335
--- /dev/null
+++ b/src/support/AppleSupport.h
@@ -0,0 +1,23 @@
+// -*- C++ -*-
+/**
+ * \file AppleSupport.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Stephan Witt
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+#ifndef LYX_SUPPORT_APPLESUPPORT_H
+#define LYX_SUPPORT_APPLESUPPORT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+	void appleCleanupEditMenu();
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/src/support/AppleSupport.m b/src/support/AppleSupport.m
new file mode 100644
index 0000000..4cac559
--- /dev/null
+++ b/src/support/AppleSupport.m
@@ -0,0 +1,23 @@
+/**
+ * \file AppleSupport.m
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author Stephan Witt
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
+#import <Cocoa/Cocoa.h>
+#include "AppleSupport.h"
+
+
+void appleCleanupEditMenu() {
+
+	// Remove (disable) the "Start Dictation..." and "Emoji & Symbols" menu items
+	// from the "Edit" menu
+
+	[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"NSDisabledDictationMenuItem"];
+	[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"NSDisabledCharacterPaletteMenuItem"];
+
+}
diff --git a/src/support/CMakeLists.txt b/src/support/CMakeLists.txt
index 3e9dac5..99b4383 100644
--- a/src/support/CMakeLists.txt
+++ b/src/support/CMakeLists.txt
@@ -12,6 +12,7 @@ list(REMOVE_ITEM support_sources ${moc_files} .)
 if(APPLE)
 	list(APPEND dont_merge ${TOP_SRC_DIR}/src/support/AppleSpeller.m)
 	list(APPEND dont_merge ${TOP_SRC_DIR}/src/support/AppleScript.m)
+	list(APPEND dont_merge ${TOP_SRC_DIR}/src/support/AppleSupport.m)
 else()
 	list(REMOVE_ITEM support_sources "${TOP_SRC_DIR}/src/support/AppleScriptProxy.cpp")
 endif()
diff --git a/src/support/Makefile.am b/src/support/Makefile.am
index 6710bcc..785b97f 100644
--- a/src/support/Makefile.am
+++ b/src/support/Makefile.am
@@ -129,6 +129,8 @@ liblyxsupport_a_SOURCES += \
 	AppleScript.h \
 	AppleScript.m \
 	AppleScriptProxy.cpp \
+	AppleSupport.h \
+	AppleSupport.m \
 	linkback/LinkBack.h \
 	linkback/LinkBack.m \
 	linkback/LinkBackProxy.h \


More information about the lyx-cvs mailing list