On Fri Jun 27 15:38:57 2025 +0000, Huw Davies wrote:
> After the third commit I'm getting
> ```
> tts.c:1060: Test succeeded inside todo block: got 0.
> ```
> which is fixed after the final commit.
Fixed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8390#note_108256
These patches make a test case attached to the bug https://bugs.winehq.org/show_bug.cgi?id=33190 work.
--
v6: win32u: NtGdiExtTextOutW() should translate x,y from logical to device units at the last step.
win32u: Fix device<->world width/height converters.
win32u: Use slightly more readable names for DP/LP converters.
win32u: Use correct helper for converting width to device units.
gdi32/tests: Add some tests for rotated font metrics.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5068
Although I have trouble reproducing it I still experience weird test failures whenever I create or updated separate MRs in a short amount of time. These failures are usually coming from unexpected display settings, although each job is running within docker in an isolated environment.
I don't have any explanation for this, and I have confirmed that separate X server are spawned. However, the prefix used for the tests is initialized to /home/gitlab/.wine and I suspect this could perhaps be mounted and shared across containers? It could also explain the failures, if, for instance wineserver starts while another instance (invisible as isolated in a separate container) is running and has updated the registry on disk with different display settings while the tests are being executed.
This is hypothetical but nonetheless I think it's better to keep the prefix in a job workspace sub-directory.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8452
(Follow up from !6788)
The goal is to use the device object API as the backend for Windows.Devices.Enumeration, as most concepts from the latter have a one-to-one mapping to the former:
* The device object API is centred around the [`DEV_OBJECT`](https://learn.microsoft.com/en-us/windows/win32/api/devquerydef/ns-devquerydef-dev_object) type, which provides a unified representation for devnodes, device interfaces/containers, device interface classes, and association endpoints (networking protocols and service instances, like UPnP and Bluetooth), together with the properties associated with it. The [`DevObjectType`](https://learn.microsoft.com/en-us/windows/win32/api/devquerydef/ne-devquerydef-dev_object_type) enum maps to [`Windows.Devices.Enumeration.DeviceInformationKind`](https://learn.microsoft.com/en-us/uwp/api/windows.devices.enumeration.deviceinformationkind?view=winrt-26100). This would be used to implement the [`DeviceInformation`](https://learn.microsoft.com/en-us/uwp/api/windows.devices.enumeration.deviceinformation?view=winrt-26100) class.
* [`DEVPROP_FILTER_EXPRESSION`](https://learn.microsoft.com/en-us/windows/win32/api/devfiltertypes/ns-devfiltertypes-devprop_filter_expression) allows filtering device queries by their properties. AQS filter strings would be parsed into an array of filters, which are then passed to the query object methods.
* `DevCreateObjectQuery` would be the backend for `DeviceWatcher`, as it provides asynchronous callbacks for initial device enumeration, device addition, removal and updates.
* [`DevGetObjects`](https://learn.microsoft.com/en-us/windows/win32/api/devquery/nf-devquery-devgetobjects) would be used to implement the `FindAllAsync*` methods.
This MR adds a basic implementation and tests for `DevGetObjects`.
--
v3: cfgmgr32: Add a basic implementation for DevGetObjects(Ex) for device interface objects.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8438
comctl32/treeview: Return from TREEVIEW_LButtonDown when the treeview handle is invalid.
LButtonDown should return when the treeview handle is invalid (e.g. destroyed) after NM_CLICK to prevent further message processing.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58211
--
v7: comctl32/treeview: Return from TREEVIEW_LButtonDown when the treeview handle is invalid.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8258