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.
--
v41: win32u: Handle dbus notification balloons from system_tray_call
win32u: Handle notification balloons through org.freedesktop.Notifications dbus interface
win32u: Add a ShowBalloon driver interface
win32u: Handle StatusNotifierItem management from system_tray_call
win32u: Handle StatusNotifierWatcher owner changing and registering objects to a new watcher
win32u: Add SNI driver for systray handling
win32u: Add DBus event loop for SNI handling
win32u: Add a SystrayRunLoop driver interface
https://gitlab.winehq.org/wine/wine/-/merge_requests/2808
Thanks for the patch! Other than a couple of style nitpicks it looks good.
> I could have looped the `recv()` call to collect all of the response, but that felt more complicated than adding a minor delay. The tests were verified against Windows 11 Pro (build 22621.3880).
I think it'd still be preferable, though. 100 ms isn't a lot, but those kinds of sleeps can build up, and we do want our tests to be as quick as possible. Perhaps more concerningly, if the timing is particularly bad, and 100 ms isn't enough, we'll get intermittent failures.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6216#note_78212
Elizabeth Figura (@zfigura) commented about dlls/http.sys/http.c:
> {
> if (send(conn->socket, response->buffer, response->len, 0) >= 0)
> {
> - if (conn->content_len)
> - {
> - /* Discard whatever entity body is left. */
> - memmove(conn->buffer, conn->buffer + conn->content_len, conn->len - conn->content_len);
> - conn->len -= conn->content_len;
> + /* Clean up the connection if we are not sending more response data. */
> + if (response->response_flags != HTTP_SEND_RESPONSE_FLAG_MORE_DATA) {
Brace on a new line, please, to match the existing style. There's another instance in 4/4.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6216#note_78211
Tested using C&C Red Alert 2; selection of interface and network communication worked as expected. IPX traffic correctly sent to the selected interface only, as confirmed by **tcpdump(8)**.
![ra2-on-linux-with-multiple-ipx-interfaces](/uploads/7755db6a7b82a21050623d3ccd9ec37e/ra2-on-linux-with-multiple-ipx-interfaces.png)
--
v5: ws2_32: Fully implement socket options IPX_ADDRESS and IPX_MAX_ADAPTER_NUM on Linux
https://gitlab.winehq.org/wine/wine/-/merge_requests/6191