Hi, took a stab at fixing [20190](https://bugs.winehq.org/show_bug.cgi?id=20190)
Windows seems to ignore the requests to set geometry for non-popup children.
Tested on my machine and patch seems to be working.
From: Rafał Kucharski vaxry@vaxry.net
Windows ignores those requests. Fixes bug #20190
Signed-off-by: Rafał Kucharski vaxry@vaxry.net --- dlls/win32u/window.c | 8 ++++++++ 1 file changed, 8 insertions(+)
diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 69dd8caba5d..ad2b62dcfde 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -3410,6 +3410,14 @@ BOOL set_window_pos( WINDOWPOS *winpos, int parent_x, int parent_y ) } }
+ if (winpos->hwndInsertAfter == HWND_TOPMOST || winpos->hwndInsertAfter == HWND_NOTOPMOST) + { + /* Fixes bug #20190, Windows ignores these windows' geometry sets */ + DWORD style = get_window_long(winpos->hwnd, GWL_STYLE); + + if ((style & (WS_POPUP | WS_CHILD)) == WS_CHILD) return TRUE; + } + /* Make sure that coordinates are valid for WM_WINDOWPOSCHANGING */ if (!(winpos->flags & SWP_NOMOVE)) {
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=143645
Your paranoid android.
=== debian11b (64 bit WoW report) ===
comctl32: combo.c:1205: Test failed: 00000002: got 44808041 combo.c:1206: Test failed: 00000002: got 00000080 combo.c:1212: Test failed: 00000002: got 00000080 combo.c:1205: Test failed: 00000003: got 44808041 combo.c:1206: Test failed: 00000003: got 00000080 combo.c:1212: Test failed: 00000003: got 00000080 combo.c:1344: Test failed: Test 0: expected list height to be 480, got 16 combo.c:1344: Test failed: Test 1: expected list height to be 560, got 64 combo.c:1344: Test failed: Test 2: expected list height to be 48, got 16 combo.c:1337: Test failed: Test 0: expected list height to be 24, got 25 combo.c:1337: Test failed: Test 1: expected list height to be 74, got 75 combo.c:1337: Test failed: Test 2: expected list height to be 24, got 25
user32: combo.c:697: Test failed: 00000002: got 44808041 combo.c:698: Test failed: 00000002: got 00000080 combo.c:704: Test failed: 00000002: got 00000080 combo.c:697: Test failed: 00000003: got 44808041 combo.c:698: Test failed: 00000003: got 00000080 combo.c:704: Test failed: 00000003: got 00000080 combo.c:798: Test failed: Test 5, expected list height to be 32, got 48 combo.c:798: Test failed: Test 6, expected list height to be 32, got 64 combo.c:798: Test failed: Test 7, expected list height to be 32, got 64 combo.c:798: Test failed: Test 8, expected list height to be 32, got 64 win.c:3174: Test succeeded inside todo block: (103,149)-(203,249) != (103,149)-(203,249). win.c:3182: Test succeeded inside todo block: (103,149)-(203,249) != (103,149)-(203,249).
I'm not sure how this is better than MR !667.
On Sun Mar 3 16:08:52 2024 +0000, Jinoh Kang wrote:
I'm not sure how this is better than MR !667.
it does indeed fix the same issue, though the discussion on 667 has all but stalled, the patch is outdated, and this solution is smaller.
On Sun Mar 3 16:08:52 2024 +0000, Vaxry wrote:
it does indeed fix the same issue, though the discussion on 667 has all but stalled, the patch is outdated, and this solution is smaller.
This patch lacks tests. The checks are too broad because it's smaller. Since it's broad, it affects cases that *aren't* affected by the bug.
It's better to bump !667 instead. It tries to minimize impact on cases not affected by the bug (hence lowering risk of regressing other apps). Thanks.
On Sun Mar 3 16:35:16 2024 +0000, Jinoh Kang wrote:
This patch lacks tests. The checks are too broad because it's smaller. Since it's broad, it affects cases that *aren't* affected by the bug. It's better to bump !667 instead. It tries to minimize impact on cases not affected by the bug (hence lowering risk of regressing other apps). Thanks.
Sure, we can bump 667. Though I have no idea why it stalled, since there are no opposing comments on it.
This merge request was closed by Vaxry.