Skip to content
  • David Edmundson's avatar
    Use DBusMenu if available · 14a546e5
    David Edmundson authored
    This is part one in a series to restore global menu support in Plasma.
    Since we inherit from QPlatformTheme we do not get the global menu
    support for free like Qt's own platform themes inheriting from
    QGenericUnixTheme would, hence the use of private headers. It includes a
    fork of Qt's QDBusMenuBar to give us access to some of its properties
    (the window it's operating on and the object path). This requires
    relicensing of Plasma-Integration to LGPL3.
    To support Wayland instead of relying on window IDs alone, we set the
    DBus service name and object path where the menu is as window properties
    which KWin or any other interested party could read. This way this code
    becomes completely window ID agnostic and since all the boilerplate
    (emit layout changed and what not) is in the client, we wouldn't even
    really need the registrar anymore.
    To facilitate keyboard navigation, long-pressing Alt will request the
    application to open the menu, and then either KWin will trigger the
This project is licensed under the Other. Learn more