File 0002-Move-SNI-s-libdbusmenu-qt-fork-to-the-root-directory.patch of Package plasma5-workspace
From c78362586d497eda640be331023f9d8b51681cb3 Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Thu, 5 Jan 2017 16:14:39 +0000
Subject: [PATCH 02/44] Move SNI's libdbusmenu-qt fork to the root directory
and use that for appmenu too
Summary:
libdbusmenu-qt had a quirkin it that meant it would spawn a nested
event loop when updating a menu.
In order to fix StatusNotifierItem I ended up making a fork of the 3
small classes that we needed and applying a fix, whilst we waited for
upstream.
We also were including a complicated library+plugin that handled import
and exporting, just to do importing which is rather pointless.
When appmenu support was restored, we ended up re-linking the original
dbusmenu-qt library. The original still had the same bug, manifesting in
a whole new way of Kate's bookmarks menu automatically closing when you
click on it.
This patch shares the same libdbusmenu-qt lib we have for the SNI
dataengine with the one for appmenu.
Test Plan:
Everything compiles after removing the find package for old libdbusmenu-
qt
Menu in the Plasma applet works a lot better, and doesn't have the bug
of menus randomly closing.
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D3926
---
CMakeLists.txt | 12 ++----------
appmenu/CMakeLists.txt | 4 +---
dataengines/statusnotifieritem/CMakeLists.txt | 7 +------
libdbusmenuqt/CMakeLists.txt | 13 +++++++++++++
.../libdbusmenuqt => libdbusmenuqt}/README | 0
.../libdbusmenuqt => libdbusmenuqt}/dbusmenuimporter.cpp | 0
.../libdbusmenuqt => libdbusmenuqt}/dbusmenuimporter.h | 0
.../libdbusmenuqt => libdbusmenuqt}/dbusmenushortcut_p.cpp | 0
.../libdbusmenuqt => libdbusmenuqt}/dbusmenushortcut_p.h | 0
.../libdbusmenuqt => libdbusmenuqt}/dbusmenutypes_p.cpp | 0
.../libdbusmenuqt => libdbusmenuqt}/dbusmenutypes_p.h | 0
.../libdbusmenuqt => libdbusmenuqt}/utils.cpp | 0
.../libdbusmenuqt => libdbusmenuqt}/utils_p.h | 0
13 files changed, 17 insertions(+), 19 deletions(-)
create mode 100644 libdbusmenuqt/CMakeLists.txt
rename {dataengines/statusnotifieritem/libdbusmenuqt => libdbusmenuqt}/README (100%)
rename {dataengines/statusnotifieritem/libdbusmenuqt => libdbusmenuqt}/dbusmenuimporter.cpp (100%)
rename {dataengines/statusnotifieritem/libdbusmenuqt => libdbusmenuqt}/dbusmenuimporter.h (100%)
rename {dataengines/statusnotifieritem/libdbusmenuqt => libdbusmenuqt}/dbusmenushortcut_p.cpp (100%)
rename {dataengines/statusnotifieritem/libdbusmenuqt => libdbusmenuqt}/dbusmenushortcut_p.h (100%)
rename {dataengines/statusnotifieritem/libdbusmenuqt => libdbusmenuqt}/dbusmenutypes_p.cpp (100%)
rename {dataengines/statusnotifieritem/libdbusmenuqt => libdbusmenuqt}/dbusmenutypes_p.h (100%)
rename {dataengines/statusnotifieritem/libdbusmenuqt => libdbusmenuqt}/utils.cpp (100%)
rename {dataengines/statusnotifieritem/libdbusmenuqt => libdbusmenuqt}/utils_p.h (100%)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 28523ca9..b741c10a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -69,12 +69,6 @@ set_package_properties(ZLIB PROPERTIES DESCRIPTION "Support for gzip compressed
TYPE REQUIRED
)
-find_package(dbusmenu-qt5 CONFIG)
-set_package_properties(dbusmenu-qt5 PROPERTIES DESCRIPTION "Support for notification area menus via the DBusMenu protocol"
- URL "https://launchpad.net/libdbusmenu-qt"
- TYPE OPTIONAL
- )
-
find_package(X11)
set_package_properties(X11 PROPERTIES DESCRIPTION "X11 libraries"
URL "http://www.x.org"
@@ -128,13 +122,11 @@ add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
add_subdirectory(doc)
add_subdirectory(libkworkspace)
+add_subdirectory(libdbusmenuqt)
+
add_subdirectory(libtaskmanager)
add_subdirectory(components)
-if(dbusmenu-qt5_FOUND)
- add_subdirectory(appmenu)
-endif()
-
add_subdirectory(plasma-windowed)
add_subdirectory(shell)
add_subdirectory(freespacenotifier)
diff --git a/appmenu/CMakeLists.txt b/appmenu/CMakeLists.txt
index 7addb5d1..317f62e5 100644
--- a/appmenu/CMakeLists.txt
+++ b/appmenu/CMakeLists.txt
@@ -1,5 +1,3 @@
-include_directories(${dbusmenu-qt5_INCLUDE_DIRS})
-
remove_definitions(-DQT_NO_CAST_FROM_ASCII -DQT_STRICT_ITERATORS -DQT_NO_CAST_FROM_BYTEARRAY -DQT_NO_KEYWORDS)
set(kded_appmenu_SRCS
@@ -24,7 +22,7 @@ target_link_libraries(appmenu
KF5::KIOCore
KF5::WindowSystem
${X11_LIBRARIES}
- dbusmenu-qt5
+ dbusmenuqt
)
if (HAVE_X11)
diff --git a/dataengines/statusnotifieritem/CMakeLists.txt b/dataengines/statusnotifieritem/CMakeLists.txt
index 2e93583f..6a6fc9aa 100644
--- a/dataengines/statusnotifieritem/CMakeLists.txt
+++ b/dataengines/statusnotifieritem/CMakeLists.txt
@@ -1,5 +1,4 @@
include_directories(${plasma-workspace_SOURCE_DIR}/statusnotifierwatcher)
-include_directories(${dbusmenu-qt5_INCLUDE_DIRS})
# We add our source code here
set(statusnotifieritem_engine_SRCS
@@ -8,11 +7,6 @@ set(statusnotifieritem_engine_SRCS
statusnotifieritemservice.cpp
statusnotifieritemjob.cpp
systemtraytypes.cpp
-
- libdbusmenuqt/dbusmenuimporter.cpp
- libdbusmenuqt/dbusmenushortcut_p.cpp
- libdbusmenuqt/dbusmenutypes_p.cpp
- libdbusmenuqt/utils.cpp
)
set(statusnotifierwatcher_xml ${KNOTIFICATIONS_DBUS_INTERFACES_DIR}/kf5_org.kde.StatusNotifierWatcher.xml)
@@ -34,6 +28,7 @@ target_link_libraries(plasma_engine_statusnotifieritem
KF5::Service
KF5::Plasma
KF5::IconThemes
+ dbusmenuqt
)
kcoreaddons_desktop_to_json(plasma_engine_statusnotifieritem plasma-dataengine-statusnotifieritem.desktop)
diff --git a/libdbusmenuqt/CMakeLists.txt b/libdbusmenuqt/CMakeLists.txt
new file mode 100644
index 00000000..9995811e
--- /dev/null
+++ b/libdbusmenuqt/CMakeLists.txt
@@ -0,0 +1,13 @@
+set(libdbusmenu_SRCS
+dbusmenuimporter.cpp
+dbusmenushortcut_p.cpp
+dbusmenutypes_p.cpp
+utils.cpp
+)
+
+add_library(dbusmenuqt STATIC ${libdbusmenu_SRCS})
+target_link_libraries(dbusmenuqt
+ Qt5::DBus
+ Qt5::Widgets
+)
+
diff --git a/dataengines/statusnotifieritem/libdbusmenuqt/README b/libdbusmenuqt/README
similarity index 100%
rename from dataengines/statusnotifieritem/libdbusmenuqt/README
rename to libdbusmenuqt/README
diff --git a/dataengines/statusnotifieritem/libdbusmenuqt/dbusmenuimporter.cpp b/libdbusmenuqt/dbusmenuimporter.cpp
similarity index 100%
rename from dataengines/statusnotifieritem/libdbusmenuqt/dbusmenuimporter.cpp
rename to libdbusmenuqt/dbusmenuimporter.cpp
diff --git a/dataengines/statusnotifieritem/libdbusmenuqt/dbusmenuimporter.h b/libdbusmenuqt/dbusmenuimporter.h
similarity index 100%
rename from dataengines/statusnotifieritem/libdbusmenuqt/dbusmenuimporter.h
rename to libdbusmenuqt/dbusmenuimporter.h
diff --git a/dataengines/statusnotifieritem/libdbusmenuqt/dbusmenushortcut_p.cpp b/libdbusmenuqt/dbusmenushortcut_p.cpp
similarity index 100%
rename from dataengines/statusnotifieritem/libdbusmenuqt/dbusmenushortcut_p.cpp
rename to libdbusmenuqt/dbusmenushortcut_p.cpp
diff --git a/dataengines/statusnotifieritem/libdbusmenuqt/dbusmenushortcut_p.h b/libdbusmenuqt/dbusmenushortcut_p.h
similarity index 100%
rename from dataengines/statusnotifieritem/libdbusmenuqt/dbusmenushortcut_p.h
rename to libdbusmenuqt/dbusmenushortcut_p.h
diff --git a/dataengines/statusnotifieritem/libdbusmenuqt/dbusmenutypes_p.cpp b/libdbusmenuqt/dbusmenutypes_p.cpp
similarity index 100%
rename from dataengines/statusnotifieritem/libdbusmenuqt/dbusmenutypes_p.cpp
rename to libdbusmenuqt/dbusmenutypes_p.cpp
diff --git a/dataengines/statusnotifieritem/libdbusmenuqt/dbusmenutypes_p.h b/libdbusmenuqt/dbusmenutypes_p.h
similarity index 100%
rename from dataengines/statusnotifieritem/libdbusmenuqt/dbusmenutypes_p.h
rename to libdbusmenuqt/dbusmenutypes_p.h
diff --git a/dataengines/statusnotifieritem/libdbusmenuqt/utils.cpp b/libdbusmenuqt/utils.cpp
similarity index 100%
rename from dataengines/statusnotifieritem/libdbusmenuqt/utils.cpp
rename to libdbusmenuqt/utils.cpp
diff --git a/dataengines/statusnotifieritem/libdbusmenuqt/utils_p.h b/libdbusmenuqt/utils_p.h
similarity index 100%
rename from dataengines/statusnotifieritem/libdbusmenuqt/utils_p.h
rename to libdbusmenuqt/utils_p.h
--
2.12.0