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

openSUSE Build Service is sponsored by