Robbert van der Helm (@robbert-vdh) commented about dlls/winex11.drv/window.c:
> if (!data->embedded) XIconifyWindow( data->display, data->whole_window, data->vis.screen );
> break;
> }
> +
> + /* override redirect windows won't receive WM_STATE property changes */
> + if (!data->managed) data->wm_state_serial = 0;
Hi!
This specific check causes `ConfigureNotify` events to no longer be processed by top level windows (i.e. managed) windows. as `wm_state_serial` will be set but never cleared again. For the last couple years I've been sending `ConfigureNotify` events to a reparented window to embed Wine windows into other X11 windows, but this specific check breaks that for Wine 9.22. Wine's XEmbed support (which never worked quite as well as the reparent+`ConfigureNotify` approach) also does not seem to work anymore with recent Wine releases.
My question is: is this check necessary to prevent other undesirable interactions and if so, what's the current best way to send X11 window configuration events to Wine windows?
More context: https://github.com/robbert-vdh/yabridge/issues/382#issuecomment-2510155844
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6569#note_89380
The idea is to use common helper to convert between CP_ACP and WCHAR strings first. Later all functions will be switched to support UTF-8 at the same time.
--
v2: msvcrt: Call _wfullpath in _fullpath function.
msvcrt: Call _wgetdcwd in _getdcwd function.
msvcrt: Call _wgetcwd in _getcwd function.
msvcrt: Call _wchdir in _chdir function.
msvcrt: Call _wrmdir in _rmdir function.
msvcrt: Call _wmkdir in _mkdir function.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6937
The idea is to use common helper to convert between CP_ACP and WCHAR strings first. Later all functions will be switched to support UTF-8 at the same time.
--
v3: msvcrt: Call _wfullpath in _fullpath function.
msvcrt: Call _wgetdcwd in _getdcwd function.
msvcrt: Call _wgetcwd in _getcwd function.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6937
Recent changes allowed the Wayland driver to properly deal with numpad keys depending on numlock status. This MR ensures that numlock and other lock state is properly synced, and concludes the fix for https://bugs.winehq.org/show_bug.cgi?id=56397.
This MR also syncs the key press state when a window gains keyboard focus, including any modifier press state. Note that we currently ignore the modifier press information from the `modifier` event, since: 1. it doesn't differentiate between left-right keys, 2. mod press state changes will be normally preceded by a matching key event, so we are able to sync properly. However, if we find that we need to handle mod press state changes without corresponding key events, we will need to implement some sensible way to sync these, too.
Although I would like for the driver work exclusively in terms of scancodes, I still needed to use vkeys in this case, since this is how wineserver expresses keyboard state at the moment. This means that I had to introduce/duplicate some extra scan->vkey logic in the driver (e.g., numpad keys based on numlock state) to get things right.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5712
This MR adds support for getting a Bluetooth adapter's properties from its corresponding `org.bluez.Adapter1` object, and making them available to userspace via device properties and the `IOCTL_BTH_GET_LOCAL_INFO` ioctl, updating these properties whenever a `PropertiesChanged` signal is received for the adapter.
It also adds code for creating and removing radio PDOs on receiving `InterafacesAdded` and `InterfacesRemoved` signals from BlueZ, respectively.
--
v2: winebth.sys: Implement IOCTL_BTH_GET_LOCAL_INFO.
winebth.sys: Update radio PDO properties on receiving PropertiesChanged for an org.bluez.Adapter1 object.
winebth.sys: Remove the corresponding radio PDO on receiving InterfacesRemoved for a org.bluez.Adapter1 object.
winebth.sys: Create new radio PDOs on receiving InterfacesAdded for objects that implement org.bluez.Adapter1.
winebth.sys: Set radio PDO properties from the device's corresponding org.bluez.Adapter1 object properties.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6936