Hi all, as discussed we do not plan to implement an xembed based systemtray. This means all applications using xembed systray icon will break. And as Qt uses xembed for QSystemTrayIcon this is a suboptimal solution.
The idea to solve it is to force the QSystemTrayIcon to use status notifiers through our QPA plugin in frameworksintegration. The good news is I have it working on my system, the bad news is it needs changes in Qt and thus we won't have it till we depend on Qt 5.3. * Why are changes needed to Qt? * The context menu is passed to the QPlatformSystemTrayIcon as a QPlatformMenu. If our implementation of QPlatformTheme does not provide a QPlatformMenu, we get a null pointer and don't have any information about the menu. Thus our status notifier loses the context menu. Not nice. The second problem is that for X11 the QPA is not used at all. Thus when running on X11 our hook is not used at all. Though for Wayland it would be used (at least I assume so) which doesn't provide an implementation in qtbase. * Current patches * 1. Patch to extend Qt by all I need to get the menu properly passed to our implementation: https://codereview.qt-project.org/76864 2. Patch to not build the X11 implementation and force to QPA: diff --git a/src/widgets/util/util.pri b/src/widgets/util/util.pri index b4bbc5f..aab9719 100644 --- a/src/widgets/util/util.pri +++ b/src/widgets/util/util.pri @@ -29,8 +29,6 @@ SOURCES += \ win32:!wince*:!winrt { SOURCES += util/qsystemtrayicon_win.cpp -} else:contains(QT_CONFIG, xcb) { - SOURCES += util/qsystemtrayicon_x11.cpp } else { SOURCES += util/qsystemtrayicon_qpa.cpp } This obviously is not a solution. If I get positive reviews on item 1 I will start to move the X11 implementation to the xcb plugin. 3. Implementation in frameworkintegration: branch systray in kde:clones/frameworkintegration/graesslin/frameworkintegration or as commit link: http://commits.kde.org/clones/frameworkintegration/graesslin/frameworkintegration/bf2a398ff6105aff4349c5eba37283f0326bd8ec The patches contain a small demo application which you can use to play with. Any support on the Qt code review will be appreciated :-) Cheers Martin
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Plasma-devel mailing list Plasma-devel@kde.org https://mail.kde.org/mailman/listinfo/plasma-devel