On Mon Aug 12 13:09:54 2024 +0000, Zhiyi Zhang wrote:
> Not all of the comments are addressed.
> Also, please add an 's' at the end of "comctl32/test" so it becomes
> "comctl32/tests: Add rebar chevron visibility test.".
Fixed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6075#note_78519
On Tue Aug 13 07:07:08 2024 +0000, Ilia Docin wrote:
> changed this line in [version 6 of the diff](/wine/wine/-/merge_requests/6075/diffs?diff_id=126213&start_sha=606f2f040764d020301d07abaa1e02fb21049343#382007f113cc98a69ffe5bb3875a73e4727dad0c_1217_1217)
Fixed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6075#note_78518
SQLFreeSTMT doesn't use the generic function as it cause a crash when the FreeHandle was called (mysql).
--
v2: odbc32: Support Allocating SQL handles for ODBC v2 drivers.
odbc32: SQLSetEnvAttr isnt supported in ODBC v2.0
odbc32: Support freeing SQL handles for ODBC v2 drivers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6114
This fixes two regression with the latest ODBC32 updates.
- SQLAllocStmt is an ODBC v2 function, so use the SQLAllocHandle (odbc v3) by default.
- SQLBindCol call the actual driver function (appears to be a copy paste mistake).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6247
When the listview expands or collapses an item it notifies the parent using the TVN_ITEMEXPANDING message. The parent can return true on this message and it prevents the treeview from expanding or collapsing the item. WINE does not let you deny TVN_ITEMEXPANDING by returning true.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53727
--
v8: comctl32/treeview: Allow treeview parent to deny treeview expansion.
comctl32/tests: Add test to check if treeview expansion can be denied.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6218
This merge request implements the `httpapi.dll` `HttpResponseSendEntityBody` function and associated tests. API documentation was written by me by paraphrasing/re-writing what I had read for the function from the MSDN documentation. I am adding this function to enable the remote API component of the Space Engineers Dedicated Server.
Implementation notes:
- I mainly copied the relevant portion of `HttpSendHttpResponse` for `HttpResponseSendEntityBody`.
- I updated the `http_response` struct to add a field `response_flags`
- This field tracks the flags passed in to `HttpSendHttpResponse` and `HttpResponseSendEntityBody`.
- This was needed because the clean-up steps in `http.sys` need to be skipped when `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` is set.
- I updated `HttpSendHttpResponse` to handle the `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` flag by omitting the `Content-Length` header and setting the `response_flags` field in the `response` object passed to `http.sys`.
- The `Content-Length` header is omitted by the Windows implementation and thus I omitted it here for conformance purposes.
- I updated `http_send_response` in `http.sys` to skip the connection clean up steps if the `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` flag was set. This works for both `HttpSendHttpResponse` and `HttpResponseSendEntityBody` as either could set the flag to continue to send more data.
- It is not 100% clear to me what the cleanup steps are doing. In particular, I am uncertain what lines 1011-1016 and 1023-1027 are doing, but based on context it seemed appropriate to keep them with the other connection cleanup steps.
For testing, I duplicated the existing `HttpSendHttpResponse` test but modified it to set the `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` flag and then followed up with a call to `HttpResponseSendEntityBody` with new data. The validation ensures that data from both the initial response and follow up response are contained in the final response obtained via `recv()`. On Windows 11 this happens immediately without any delay, but in Wine I had to add a `Sleep(100)` to give enough time for the follow up response to be received in the socket buffer by the time the `recv()` call was made in the test. 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).
--
v5: httpapi: Implement HttpSendResponseEntityBody
httpapi: Handle HTTP_SEND_RESPONSE_FLAG_MORE_DATA flag
http.sys: Skip clean up if HTTP_SEND_RESPONSE_FLAG_MORE_DATA is set
httpapi: Add tests for HttpResponseSendEntityBody
https://gitlab.winehq.org/wine/wine/-/merge_requests/6216
When the listview expands or collapses an item it notifies the parent using the TVN_ITEMEXPANDING message. The parent can return true on this message and it prevents the treeview from expanding or collapsing the item. WINE does not let you deny TVN_ITEMEXPANDING by returning true.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53727
--
v7: comctl32/treeview: Allow treeview parent to deny treeview expansion.
comctl32/tests: Add test to check if treeview expansion can be denied.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6218
On Fri Aug 9 19:33:22 2024 +0000, Ilia Docin wrote:
> Sorry for the late response. Changed.
Not all of the comments are addressed.
Also, please add an 's' at the end of "comctl32/test" so it becomes "comctl32/tests: Add rebar chevron visibility test.".
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6075#note_78420
This fixes a segfault when launching NFS Underground.
Fixes: f434ea12b83 ("dinput: Implement DIPROP_SCANCODE.")
--
v2: dinput: Use the correct array index in keyboard_create_device().
https://gitlab.winehq.org/wine/wine/-/merge_requests/6249
Aggregating all the rects of a window, instead of storing and passing them separately. This is in order to make future changes easier, where we would pass monitor DPI rects in addition to window DPI rects to the drivers for DPI scaling.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6254
And avoid triggering X11 errors with foreign windows.
--
v2: winex11: Don't call X11DRV_SET_DRAWABLE with invalid drawable.
winex11: Avoid moving embedded windows in the systray dock.
win32u: Fix CreateWindowSurface call when updating layered surfaces.
winex11: Check whether the window surface needs to be re-created.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6233
--
v2: qcap: Delay setting v4l device format until stream start.
quartz: Propagate graph start error in MediaControl_Run().
qcap/tests: Add a test for simultaneous video capture usage.
qcap/tests: Fix test failure in testsink_Receive() on some hardware.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6022
Same code used for synth and for MIDI devices, but it try to count
Synth or MIDI device id from wine driver ID.
After this change device id is stored in struct and always correct.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6251
--
v2: widl: Propagate attrs to inner pointer types.
widl: Ignore strings in is_embedded_complex().
widl: Get rid of the write_embedded_types() helper.
widl: Explicitly check for top-level parameters before adding FC_ALLOCED_ON_STACK.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6165
This fixes a blank window content issue that happens even with basic Wine programs.
Fixes: b9879d5adc1 ("winewayland: Remove now unnecessary WindowPosChanging checks.")
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6248
In win32u/font.c's `create_child_font_list` function:
- We remove the `ansi_cp` `MaximumCharacterSize` check since this is the current locale's codepage, not the font's codepage. This was preventing certain child fonts from being loaded when they should have been.
- We include Microsoft Sans Serif as a child font, whereas previously we were only including its linked fonts as child font.
- As a backup, we also add Tahoma (which should ship with Wine) and its linked fonts as child fonts in case Microsoft Sans Serif is not available.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6046
On Fri Aug 9 21:57:26 2024 +0000, Ilia Docin wrote:
> Sorry for the late response. But how does it pass without fix if the
> feature branch has that fix and the pipeline runs on the feature branch?
> Besides, I checked locally that without fix the test failed with:
> listview.c:7262: Test failed: Expected -1, got 3
You should add the tests and mark the tests that are failing on wine with todo_wine. Then in the next patch that fixes the bug, remove those todo_wines.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5909#note_78275
This merge request implements the `httpapi.dll` `HttpResponseSendEntityBody` function and associated tests. API documentation was written by me by paraphrasing/re-writing what I had read for the function from the MSDN documentation. I am adding this function to enable the remote API component of the Space Engineers Dedicated Server.
Implementation notes:
- I mainly copied the relevant portion of `HttpSendHttpResponse` for `HttpResponseSendEntityBody`.
- I updated the `http_response` struct to add a field `response_flags`
- This field tracks the flags passed in to `HttpSendHttpResponse` and `HttpResponseSendEntityBody`.
- This was needed because the clean-up steps in `http.sys` need to be skipped when `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` is set.
- I updated `HttpSendHttpResponse` to handle the `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` flag by omitting the `Content-Length` header and setting the `response_flags` field in the `response` object passed to `http.sys`.
- The `Content-Length` header is omitted by the Windows implementation and thus I omitted it here for conformance purposes.
- I updated `http_send_response` in `http.sys` to skip the connection clean up steps if the `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` flag was set. This works for both `HttpSendHttpResponse` and `HttpResponseSendEntityBody` as either could set the flag to continue to send more data.
- It is not 100% clear to me what the cleanup steps are doing. In particular, I am uncertain what lines 1011-1016 and 1023-1027 are doing, but based on context it seemed appropriate to keep them with the other connection cleanup steps.
For testing, I duplicated the existing `HttpSendHttpResponse` test but modified it to set the `HTTP_SEND_RESPONSE_FLAG_MORE_DATA` flag and then followed up with a call to `HttpResponseSendEntityBody` with new data. The validation ensures that data from both the initial response and follow up response are contained in the final response obtained via `recv()`. On Windows 11 this happens immediately without any delay, but in Wine I had to add a `Sleep(100)` to give enough time for the follow up response to be received in the socket buffer by the time the `recv()` call was made in the test. 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).
--
v4: httpapi: Implement HttpSendResponseEntityBody
httpapi: Handle HTTP_SEND_RESPONSE_FLAG_MORE_DATA flag
http.sys: Skip clean up if HTTP_SEND_RESPONSE_FLAG_MORE_DATA is set
httpapi: Add tests for HttpResponseSendEntityBody
https://gitlab.winehq.org/wine/wine/-/merge_requests/6216
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)**.

--
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
Adding PSN_QUERYINITIALFOCUS helped fix some focus issues with the property sheet in bug 54862. Previously the listview in the tab control did not get focus from the start when it should have.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54862
--
v13: comctl32: Add handling for PSN_QUERYINITIALFOCUS in prop.c.
comctl32/tests: Add test for PSN_QUERYINITIALFOCUS for the propsheet.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6145
When the listview expands or collapses an item it notifies the parent using the TVN_ITEMEXPANDING message. The parent can return true on this message and it prevents the treeview from expanding or collapsing the item. WINE does not let you deny TVN_ITEMEXPANDING by returning true.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53727
--
v6: comctl32/treeview: Allow treeview parent to deny treeview expansion.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6218
On Fri Aug 9 00:00:38 2024 +0000, Nicholas Ansell wrote:
> ```suggestion:-0+0
> .name = "CharacterData",
> ```
Good catch, thanks. I sent a patch in !6236 that allows skipping the name for objects that have IDs, which should prevent such typos in the future.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6230#note_78155
without freetype, some calling return failed, so some value may not be initialized (it initialize by some failed calling and pass argument by point of it), it would cause random crash!
Signed-off-by: Fan WenJie <fanwj(a)mail.ustc.edu.cn>
--
v12: win32u: fix random crash without libfreetype
https://gitlab.winehq.org/wine/wine/-/merge_requests/5957
General idea of this test is to show that a lot of factors influence the fog when transformed and untransformed vertex format was used:
- Directly changing z and w (which is not equal in the corners).
- Changing projection matrix that change z and w.
- Using different programmable/ff vs/ps shader.
- Using different depth bias.
- Chaging depth in pixel shader (oDepth) may or may not affect to colors depending on the vendor implementation.
- And various combinations of above.
This gives `succ` in all cases on this configs:
- Windows 10 with Radeon HD 8400 or Ivy Bridge GT1 (Intel HD Graphics).
- Windows 7 with Radeon HD 6450.
- Windows XP with GeForce Go 7300.
--
v2: d3d9/tests: test table fog z vs rhw with shaders, depth bias, oDepth..
https://gitlab.winehq.org/wine/wine/-/merge_requests/2657
--
v3: d3dx9: Validate filter argument in texture from file functions.
d3dx9: Validate filter argument in D3DXLoadSurfaceFrom{Surface,FileInMemory,Memory}().
d3dx9: Validate filter argument in D3DXLoadVolumeFrom{Volume,FileInMemory,Memory}().
d3dx9: Further validate filter argument passed to D3DXFilterTexture().
d3dx9: Introduce helper function for retrieving the mip filter value in texture from file functions.
d3dx9/tests: Add d3dx filter argument value tests.
d3dx9: Return failure from D3DXLoadSurfaceFromMemory() if d3dx_load_pixels_from_pixels() fails.
d3dx9: Return success in D3DXLoadSurfaceFromMemory() for multisampled destination surfaces.
d3dx9/tests: Add tests for D3DXLoadSurfaceFromMemory() with a multisampled surface.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6157