Test that DragDetect() uses client coordinates instead of screen coordinates even though MSDN says that DragDetect()
should use screen coordinates. This also means that Wine's current implementation is correct.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6586
wintab32 is currently broken in the new wow64 mode because the `tablet_get_packet` thunk in winex11.drv is not implemented. Since the structure it is copying is entirely internal to Wine, and the HCTX handle value is not actually read or written by the driver side, I found that simply padding the structure to keep the rest of it aligned was enough to make wow64 happy and allow wintab32 to function.
This is somewhat a stopgap. What would be much better is to refactor the wintab code such that more of the logic is in the wintab32 implementation and not the driver. My goal is to accomplish this as part of trying to get my winewayland graphics tablet patch into an acceptable state for upstreaming. However, I think this is still a worthwhile improvement to have in the interim, if it is acceptable.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6584
Fix the wayland side of https://bugs.winehq.org/show_bug.cgi?id=55336
### Exit menu key by default:
That's the actual behavior, any non-special key will exit the menu key, and be sent to the client.
I was also wondering if we should add `menu_sys_key = f10_key = 0;` when receiving a `WM_ACTIVATE` in `win32u/defwnd.c`'s `default_window_proc` but I guess not ?
### Fix repeated key for no reason:
For some reason when ALT is pressed, it is spammed and thus spams SYS_COMMAND. This fix that, but I don't know what I am doing here. I don't see any repeating key spamming with winex11 but I could be wrong. However alt/SYS_COMMAND should not be repeated.
That wasn't happening with winex11.drv.
### Fix release_all_keys modifier filtering:
That was the main reason why alt-tab leads to the menu key, NtUserGetAsyncKeyboardState also uses left and right system keys.
### Fix release_all_keys scan value:
This one is wrong, a failed attempt. The actual problem is that NtUserGetAsyncKeyboardState limits itself to 256 virtual keys, discarding the extended scan code info. So it results on my down arrow being kept repeated while being focused out, and when focused in, pressing the arrow again is needed to stop the repeat.
Also using the KEYEVENTF_SCANCODE flag results in win32u/message.c's send_hardware_message calling NtUserGetKeyboardLayout which get a incorect hkl value but it doesn't seems to have an impact.
--
v3: winewayland.drv: Fix release_all_keys modifier filtering
server: Fix repeated key for no reason
win32u: Exit menu key by default
https://gitlab.winehq.org/wine/wine/-/merge_requests/6199
--
v2: dplayx: Set player data in DP_CreatePlayer().
dplayx: Add player to the system group in DP_CreatePlayer().
dplayx: Don't enumerate system players.
dplayx/tests: Test that players from SUPERENUMPLAYERSREPLY are added to the session.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6575
--
v5: winewayland: Use subsurfaces for unmanaged windows.
winewayland: Introduce a new update_wayland_surface_state_toplevel helper.
winewayland: Introduce a new wayland_surface_reconfigure_xdg helper.
winewayland: Introduce a new wayland_surface role enumeration.
winewayland: Call wayland_surface_clear_role in wayland_surface_destroy.
winewayland: Move surface title change to wayland_surface_make_toplevel.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6560
On Sat Sep 21 20:51:46 2024 +0000, Philipp Knechtges wrote:
> TBH, I do not really know what to make of this assessment. Looking at
> the d2d1 tests it feels like, correctness is at best achieved
> approximately, and then the question arises what is the metric in which
> "correctness" is assessed? Unarguably, the tests as a metric are a
> moving target, depending on when which tests are added, thus making it a
> subjective choice at times.
> In my book, the patch at hand makes the rendering more correct in many
> cases. To be precise in all cases in which the individual geometries in
> the geometry group do not intersect, and thus the fill mode does not
> matter. Would you consider the patch sufficient, if it would
> (approximately) check for intersections and only copy if there are none,
> and falling back to old behavior (rendering just nothing) in case there
> are any (potentially false-positive) intersections?
It wouldn't consider it sufficient, it's clear that there is more to it than copying data from individual geometries. So the question is the same - what needs to be done to make it work properly, once it's understood, we could implement it partially if it's too hard to do properly.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6492#note_83622
--
v3: propsys: Initially implement PropVariantToVariant.
propsys: Support converting clsid to string for PropVariant.
propsys/tests: Test converting clsid to string.
propsys/tests: Add tests for PropVariantToVariant.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6526