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
wilder-5.14
David Edmundson 9 years ago
parent 90de42f297
commit ee516ef7ea
  1. 12
      CMakeLists.txt
  2. 4
      appmenu/CMakeLists.txt
  3. 7
      dataengines/statusnotifieritem/CMakeLists.txt
  4. 13
      libdbusmenuqt/CMakeLists.txt
  5. 0
      libdbusmenuqt/README
  6. 0
      libdbusmenuqt/dbusmenuimporter.cpp
  7. 0
      libdbusmenuqt/dbusmenuimporter.h
  8. 0
      libdbusmenuqt/dbusmenushortcut_p.cpp
  9. 0
      libdbusmenuqt/dbusmenushortcut_p.h
  10. 0
      libdbusmenuqt/dbusmenutypes_p.cpp
  11. 0
      libdbusmenuqt/dbusmenutypes_p.h
  12. 0
      libdbusmenuqt/utils.cpp
  13. 0
      libdbusmenuqt/utils_p.h

@ -73,12 +73,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"
@ -132,13 +126,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)

@ -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)

@ -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)

@ -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
)
Loading…
Cancel
Save