https://bugs.kde.org/show_bug.cgi?id=375951
--- Comment #8 from Chris Holland <zrenf...@gmail.com> --- Figured I'd poke at the code to see how this works. The application menu button currently only has a single bool property that's exposed to the Breeze KDecoration via KWin's AbstractClient. This lets breeze draw the button, then signal kwin to open a "context menu" below the button. Right now, it's opening the "root" of the menu. In theory we could open a specific submenu (eg: File) if we know the index. Essentially, the KDecoration needs to know the top level menu items. Their index + text label. We probably also have to consider the top level Alt+___ shortcuts too in the future. Should show button? * https://github.com/KDE/breeze/blob/master/kdecoration/breezebutton.cpp#L326 * https://github.com/KDE/kdecoration/blob/master/src/decorationbutton.cpp#L84 * https://github.com/KDE/kdecoration/blob/master/src/decoratedclient.cpp#L72 * https://github.com/KDE/kwin/blob/master/abstract_client.cpp#L1691 On button click * https://github.com/KDE/breeze/blob/master/kdecoration/breezebutton.cpp#L326 * https://github.com/KDE/kdecoration/blob/master/src/decorationbutton.cpp#L88 * https://github.com/KDE/kdecoration/blob/master/src/decoration.cpp#L198 * https://github.com/KDE/kwin/blob/master/decorations/decoratedclient.cpp#L221 * https://github.com/KDE/kwin/blob/master/useractions.cpp#L1690 * https://github.com/KDE/kwin/blob/master/appmenu.cpp#L113 at least 3 repos need to be patched for this it seems. The appmenu widget should be a good reference for parsing the top level menu items. * https://github.com/KDE/plasma-workspace/tree/master/applets/appmenu/plugin I wonder if the breeze kdecoration could connect directly to the appmenu qdbus interface without modifying the kwin or kdecoration repos. That way it could read the top level labels and draw "buttons" itself. Would be easier to get started/test. Could even use SierraBreeze as a testbed since the repo is just the kdecoration. -- You are receiving this mail because: You are watching all bug changes.