Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.3:Rings:2-TestDVD
plasma5-workspace
0005-Route-through-an-actionId-argument.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0005-Route-through-an-actionId-argument.patch of Package plasma5-workspace
From 70969cb39b3482429a4973cf52625b856dec03b7 Mon Sep 17 00:00:00 2001 From: Kai Uwe Broulik <kde@privat.broulik.de> Date: Thu, 5 Jan 2017 17:40:19 +0100 Subject: [PATCH 05/44] Route through an "actionId" argument This way we can eventually tell KWin or the appmenu applet to highlight/open a specific menu directly --- appmenu/appmenu.cpp | 13 ++++--------- appmenu/appmenu.h | 4 ++-- appmenu/appmenu_dbus.cpp | 4 ++-- appmenu/appmenu_dbus.h | 6 +++--- appmenu/org.kde.kappmenu.xml | 2 ++ 5 files changed, 13 insertions(+), 16 deletions(-) diff --git a/appmenu/appmenu.cpp b/appmenu/appmenu.cpp index 14c3d2fe..e9d2ad18 100644 --- a/appmenu/appmenu.cpp +++ b/appmenu/appmenu.cpp @@ -112,7 +112,7 @@ void AppMenuModule::slotWindowRegistered(WId id, const QString &serviceName, con #endif } -void AppMenuModule::slotShowMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath) +void AppMenuModule::slotShowMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath, int actionId) { if (!m_menuImporter) { return; @@ -127,7 +127,7 @@ void AppMenuModule::slotShowMenu(int x, int y, const QString &serviceName, const //dbus call by user (for khotkey shortcut) if (x == -1 || y == -1) { // We do not know kwin button position, so tell kwin to show menu - emit showRequest(serviceName, menuObjectPath); + emit showRequest(serviceName, menuObjectPath, actionId); return; } @@ -191,13 +191,8 @@ void AppMenuModule::hideMenu() void AppMenuModule::itemActivationRequested(int winId, uint action) { - // our long-press Alt emits winid 0 and action 0 - // ignore "standard conforming" apps that send actual ids - if (winId != 0 || action != 0) { - return; - } - - emit showRequest(message().service(), QDBusObjectPath(message().path())); + Q_UNUSED(winId); + emit showRequest(message().service(), QDBusObjectPath(message().path()), action); } // reload settings diff --git a/appmenu/appmenu.h b/appmenu/appmenu.h index 3dc93ff8..dacfd7b6 100644 --- a/appmenu/appmenu.h +++ b/appmenu/appmenu.h @@ -48,7 +48,7 @@ Q_SIGNALS: /** * We do not know where is menu decoration button, so tell kwin to show menu */ - void showRequest(const QString &serviceName, const QDBusObjectPath &menuObjectPath); + void showRequest(const QString &serviceName, const QDBusObjectPath &menuObjectPath, int actionId); /** * This signal is emitted whenever popup menu/menubar is shown * Useful for decorations to know if menu button should look pressed @@ -72,7 +72,7 @@ private Q_SLOTS: * Show menu at QPoint(x,y) for DBus serviceName and menuObjectPath * if x or y == -1, show in application window */ - void slotShowMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath); + void slotShowMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath, int actionId); /** * Reconfigure module */ diff --git a/appmenu/appmenu_dbus.cpp b/appmenu/appmenu_dbus.cpp index b1420a70..1fe53431 100644 --- a/appmenu/appmenu_dbus.cpp +++ b/appmenu/appmenu_dbus.cpp @@ -58,9 +58,9 @@ bool AppmenuDBus::connectToBus(const QString& service, const QString& path) return true; } -void AppmenuDBus::showMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath) +void AppmenuDBus::showMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath, int actionId) { - emit appShowMenu(x, y, serviceName, menuObjectPath); + emit appShowMenu(x, y, serviceName, menuObjectPath, actionId); } void AppmenuDBus::reconfigure() diff --git a/appmenu/appmenu_dbus.h b/appmenu/appmenu_dbus.h index 7102fc6a..e1456072 100644 --- a/appmenu/appmenu_dbus.h +++ b/appmenu/appmenu_dbus.h @@ -49,7 +49,7 @@ public: * DBus method showing menu at QPoint(x,y) for given DBus service name and menuObjectPath * if x or y == -1, show in application window */ - void showMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath); + void showMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath, int actionId); /** * DBus method reconfiguring kded module */ @@ -59,7 +59,7 @@ Q_SIGNALS: /** * This signal is emitted on showMenu() request */ - void appShowMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath); + void appShowMenu(int x, int y, const QString &serviceName, const QDBusObjectPath &menuObjectPath, int actionId); /** * This signal is emitted on reconfigure() request */ @@ -70,7 +70,7 @@ Q_SIGNALS: * This signal is emitted whenever kded want to show menu * We do not know where is menu decoration button, so tell kwin to show menu */ - void showRequest(const QString &serviceName, const QDBusObjectPath &menuObjectPath); + void showRequest(const QString &serviceName, const QDBusObjectPath &menuObjectPath, int actionId); /** * This signal is emitted whenever popup menu/menubar is shown * Useful for decorations to know if menu button should look pressed diff --git a/appmenu/org.kde.kappmenu.xml b/appmenu/org.kde.kappmenu.xml index 3efdc111..d29d3ee8 100644 --- a/appmenu/org.kde.kappmenu.xml +++ b/appmenu/org.kde.kappmenu.xml @@ -6,6 +6,7 @@ <arg name="y" type="i" direction="in"/> <arg name="service" type="s" direction="in"/> <arg name="objectPath" type="o" direction="in"/> + <arg name="actionId" type="i" direction="in"/> </method> <method name="reconfigure"> </method> @@ -13,6 +14,7 @@ <signal name="showRequest"> <arg name="service" type="s" direction="out"/> <arg name="objectPath" type="o" direction="out"/> + <arg name="actionId" type="i" direction="out"/> </signal> <signal name="menuShown"> <arg name="service" type="s" direction="out"/> -- 2.12.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor