Adds the tray icons implementation based on org.kde.StatusNotifierItem interface usage. Does allow restarting StatusNotifierWatcher object, but will fallback to XEMBED or internal tray, if wine gets initialized when there is no StatusNotifierWatcher object registered.
--
v15: winesni.drv: wrap functions with pthread mutex locking
winesni.drv: implement basic balloon notification support
explorer: add winesni.drv tray implementation support
winesni.drv: add KDE StatusNotifierItem implementation for tray
https://gitlab.winehq.org/wine/wine/-/merge_requests/2808
Redo of !1857, as suggested, the plan is to split original MR in half, breadcrumbs in first (this) MR, and address edit in another.
The changes are mostly cleanup (formatting, renaming, unused variables, missing free).
Visually, it hasn't changed from original MR, part 1 changes are:
![](/uploads/42fa717ce6f7adb40d6b0dcbbe0878fa/changes-1-3.png)
And part 2:
![](/uploads/cbdaa2d4b5b8945587e1f761a4609a08/changes-2.png)
Part 2 branch can be found [here](https://gitlab.winehq.org/vt/wine/-/commits/fd-navbar-part2).
Requires !2068, otherwise if application doesn't request comctl v6 (e.g. qapitrace), navigation bar will look like this:
![no-comctl-v6](/uploads/03e6a8b6dcf827114157e79640e49fea/no-comctl-v6.png)
Closes:
- https://bugs.winehq.org/show_bug.cgi?id=29912
- https://bugs.winehq.org/show_bug.cgi?id=54812
- https://bugs.winehq.org/show_bug.cgi?id=50338 (partially? fully with address edit?)
MR changes:
- v2
- Changed the gap between buttons to be scaled with DPI
Description edits:
- v2
- Updated the changes image (by splitting it)
- Added MR changes
- v3
- Added description edits
- Updated the changes image again (forgot the overflow button change)
--
v3: comdlg32: Redirect IFileDialog navigation bar buttons focus back to the previous window.
comdlg32: Retain IExplorerBrowser view focus in IFileDialog when creating new view.
comdlg32: Prevent arrow navigation of IFileDialog navigation bar buttons.
comdlg32: Don't paint focus rect in IFileDialog navigation bar buttons.
comdlg32: Add breadcrumb overflow menu to IFileDialog navigation bar.
comdlg32: Add inner border to breadcrumbs in IFileDialog navigation bar.
comdlg32: Always show at least 2 crumbs in IFileDialog navigation bar.
comdlg32: Reuse address breadcrumbs in IFileDialog navigation bar.
comdlg32: Add address breadcrumbs to IFileDialog navigation bar.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2993