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.
--
v21: winesni.drv: add dbus watch instead of using plain unix fds and flush
https://gitlab.winehq.org/wine/wine/-/merge_requests/2808
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.
--
v20: winesni.drv: add dbus watch instead of using plain unix fds and flush
https://gitlab.winehq.org/wine/wine/-/merge_requests/2808
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.
--
v19: winesni.drv: add dbus watch instead of using plain unix fds and flush
https://gitlab.winehq.org/wine/wine/-/merge_requests/2808
On Fri Jun 16 17:31:25 2023 +0000, Zebediah Figura wrote:
> Do we need to bother with the client thread here? (Could we potentially
> make the client socket nonblocking instead?)
No; making the client socket nonblocking with `ioctlsocket()` causes it to instantly return with `WSAEWOULDBLOCK`. [Microsoft's documentation](https://learn.microsoft.com/en-us/windows/win32/winsock/wind… notes:
> It is normal for WSAEWOULDBLOCK to be reported as the result from calling connect on a nonblocking SOCK_STREAM socket, since some time must elapse for the connection to be established.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786#note_36050
On Fri Jun 16 17:31:21 2023 +0000, Zebediah Figura wrote:
> Can the length be less than the whole size of sun_path? As always we
> should test for this.
Windows 10 does not throw an error if the length is less than `sizeof(struct sockaddr_un)`; it successfully created a socket when I passed a length of `sizeof(addr.sun_family) + strlen(addr.sun_path) - 1` (minus), though the path was truncated by one character.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786#note_36049
On Fri Jun 16 17:31:21 2023 +0000, Zebediah Figura wrote:
> I don't think the {} construction is portable. We have offsetof() for
> this anyway.
It's portable for C99 if I hadn't forgotten to include the `0` (and C23 as-is), but Wine does use C89. I'll replace it with an `offsetof()`.
It's worth noting that this entire initializer is only portable for C99 due to the use of designators.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2786#note_36048