File 0042-Only-activate-kded-Appmenu-signals-if-menus-are-in-t.patch of Package plasma5-workspace
From 0ee82eadb93cfa2e90004497bc5846b9667b2d94 Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Tue, 28 Feb 2017 15:13:29 +0000
Subject: [PATCH 42/44] Only activate kded Appmenu signals if menus are in the
window decoration
Summary:
The Appmenu applet doesn't use the AppMenu module, and it interferes
with the applet.
Test Plan:
Set menus to in decoration
Pressed alt+f, it appeared
Changed it to be in the applet
pressed alt+f, nothing happened
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4833
---
appmenu/appmenu.cpp | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/appmenu/appmenu.cpp b/appmenu/appmenu.cpp
index 366f8c7a..8289b643 100644
--- a/appmenu/appmenu.cpp
+++ b/appmenu/appmenu.cpp
@@ -71,10 +71,6 @@ AppMenuModule::AppMenuModule(QObject* parent, const QList<QVariant>&)
connect(this, &AppMenuModule::showRequest, m_appmenuDBus, &AppmenuDBus::showRequest);
connect(this, &AppMenuModule::menuHidden, m_appmenuDBus, &AppmenuDBus::menuHidden);
connect(this, &AppMenuModule::menuShown, m_appmenuDBus, &AppmenuDBus::menuShown);
-
- QDBusConnection::sessionBus().connect({}, {}, QStringLiteral("com.canonical.dbusmenu"),
- QStringLiteral("ItemActivationRequested"),
- this, SLOT(itemActivationRequested(int,uint)));
}
AppMenuModule::~AppMenuModule() = default;
@@ -187,6 +183,16 @@ void AppMenuModule::reconfigure()
KConfigGroup config(KSharedConfig::openConfig(QStringLiteral("kdeglobals")), QStringLiteral("Appmenu Style"));
const QString &menuStyle = config.readEntry("Style", "InApplication");
// TODO enum or Kconfigxt or what not?
+ if (menuStyle == QLatin1String("Decoration")) {
+ QDBusConnection::sessionBus().connect({}, {}, QStringLiteral("com.canonical.dbusmenu"),
+ QStringLiteral("ItemActivationRequested"),
+ this, SLOT(itemActivationRequested(int,uint)));
+ } else {
+ QDBusConnection::sessionBus().disconnect({}, {}, QStringLiteral("com.canonical.dbusmenu"),
+ QStringLiteral("ItemActivationRequested"),
+ this, SLOT(itemActivationRequested(int,uint)));
+ }
+
if (menuStyle == QLatin1String("InApplication")) {
delete m_menuImporter;
m_menuImporter = nullptr;
--
2.12.0