diff options
Diffstat (limited to 'kde-frameworks/kxmlgui/files/kxmlgui-5.54.0-kcheckaccelerators.patch')
-rw-r--r-- | kde-frameworks/kxmlgui/files/kxmlgui-5.54.0-kcheckaccelerators.patch | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/kde-frameworks/kxmlgui/files/kxmlgui-5.54.0-kcheckaccelerators.patch b/kde-frameworks/kxmlgui/files/kxmlgui-5.54.0-kcheckaccelerators.patch deleted file mode 100644 index 0882d5f09f9c..000000000000 --- a/kde-frameworks/kxmlgui/files/kxmlgui-5.54.0-kcheckaccelerators.patch +++ /dev/null @@ -1,79 +0,0 @@ -From 02b523bad09aab062355e46771889b0f3709692f Mon Sep 17 00:00:00 2001 -From: Albert Astals Cid <aacid@kde.org> -Date: Sat, 12 Jan 2019 18:39:33 +0100 -Subject: Make KCheckAccelerators less invasive for apps that don't directly - link to KXmlGui - -Summary: BUGS: 337491 - -Test Plan: -Ran qtcreator and it no longer has the & in Details -Added some debug and checked that okular still gets the code called - -Reviewers: anthonyfieroni - -Reviewed By: anthonyfieroni - -Subscribers: davidedmundson, anthonyfieroni, kde-frameworks-devel - -Tags: #frameworks - -Differential Revision: https://phabricator.kde.org/D18204 ---- - src/kcheckaccelerators.cpp | 38 ++++++++++++++++++++++++++++++++++++-- - 1 file changed, 36 insertions(+), 2 deletions(-) - -diff --git a/src/kcheckaccelerators.cpp b/src/kcheckaccelerators.cpp -index 13fc012..e08447d 100644 ---- a/src/kcheckaccelerators.cpp -+++ b/src/kcheckaccelerators.cpp -@@ -80,10 +80,44 @@ public Q_SLOTS: - - static void startupFunc() - { -- // Call initiateIfNeeded once we're in the event loop -- // This is to prevent using KSharedConfig before main() can set the app name -+ // Static because in some cases this is called multiple times -+ // but if an application had any of the bad cases we always want -+ // to skip the check -+ static bool doCheckAccelerators = true; -+ -+ if (!doCheckAccelerators) { -+ return; -+ } -+ - QCoreApplication *app = QCoreApplication::instance(); -+ if (!app) { -+ // We're being loaded by something that doesn't have a QCoreApplication -+ // this would probably crash at some later point since we do use qApp-> -+ // quite a lot, so skip the magic -+ doCheckAccelerators = false; -+ return; -+ } -+ -+ if (!QCoreApplication::startingUp()) { -+ // If the app has already started, this means we're not being run as part of -+ // qt_call_pre_routines, which most probably means that we're being run as part -+ // of KXmlGui being loaded as part of some plugin of the app, so don't -+ // do any magic -+ doCheckAccelerators = false; -+ return; -+ } -+ -+ if (!QCoreApplication::eventDispatcher()) { -+ // We are called with event dispatcher being null when KXmlGui is being loaded -+ // through plasma-integration instead of being linked to the app (i.e. QtCreator vs Okular) -+ // For apps that don't link directly to KXmlGui do not do the accelerator magic -+ doCheckAccelerators = false; -+ return; -+ } -+ - KCheckAcceleratorsInitializer *initializer = new KCheckAcceleratorsInitializer(app); -+ // Call initiateIfNeeded once we're in the event loop -+ // This is to prevent using KSharedConfig before main() can set the app name - QMetaObject::invokeMethod(initializer, "initiateIfNeeded", Qt::QueuedConnection); - } - --- -cgit v1.1 - |