The desktop window rectangle is the same as that of primary monitor for compatibility reasons. It equals to virtual screen rectangle only when there are no more than two active and non-mirrored monitors.
Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com --- dlls/user32/tests/sysparams.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c index f74c9e7561..645c188008 100644 --- a/dlls/user32/tests/sysparams.c +++ b/dlls/user32/tests/sysparams.c @@ -3225,6 +3225,7 @@ static void test_dpi_mapping(void) ULONG_PTR i, j, k; WINDOWPLACEMENT wpl_orig, wpl; HMONITOR monitor; + INT monitor_count; MONITORINFO mon_info; DPI_AWARENESS_CONTEXT context;
@@ -3235,6 +3236,7 @@ static void test_dpi_mapping(void) } context = pSetThreadDpiAwarenessContext( DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE ); GetWindowRect( GetDesktopWindow(), &desktop ); + monitor_count = GetSystemMetrics( SM_CMONITORS ); for (i = DPI_AWARENESS_UNAWARE; i <= DPI_AWARENESS_PER_MONITOR_AWARE; i++) { pSetThreadDpiAwarenessContext( (DPI_AWARENESS_CONTEXT)~i ); @@ -3247,9 +3249,12 @@ static void test_dpi_mapping(void) SetRect( &rect, 0, 0, GetSystemMetrics( SM_CXSCREEN ), GetSystemMetrics( SM_CYSCREEN )); ok( EqualRect( &expect, &rect ), "%lu: wrong desktop rect %s expected %s\n", i, wine_dbgstr_rect(&rect), wine_dbgstr_rect(&expect) ); - SetRect( &rect, 0, 0, GetSystemMetrics( SM_CXVIRTUALSCREEN ), GetSystemMetrics( SM_CYVIRTUALSCREEN )); - ok( EqualRect( &expect, &rect ), "%lu: wrong virt desktop rect %s expected %s\n", - i, wine_dbgstr_rect(&rect), wine_dbgstr_rect(&expect) ); + if (monitor_count < 2) + { + SetRect( &rect, 0, 0, GetSystemMetrics( SM_CXVIRTUALSCREEN ), GetSystemMetrics( SM_CYVIRTUALSCREEN )); + ok( EqualRect( &expect, &rect ), "%lu: wrong virt desktop rect %s expected %s\n", + i, wine_dbgstr_rect(&rect), wine_dbgstr_rect(&expect) ); + } SetRect( &rect, 0, 0, 1, 1 ); monitor = MonitorFromRect( &rect, MONITOR_DEFAULTTOPRIMARY ); ok( monitor != 0, "failed to get monitor\n" );
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=59507
Your paranoid android.
=== w2003std (task log) ===
Task errors: The task timed out
=== w8 (32 bit report) ===
user32: sysparams.c:2514: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2525: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w8adm (32 bit report) ===
user32: sysparams.c:2514: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2525: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w864 (32 bit report) ===
user32: sysparams.c:2514: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2525: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809 (32 bit report) ===
user32: sysparams.c:2514: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2525: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809_2scr (32 bit report) ===
user32: sysparams.c:2514: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2525: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809_ar (32 bit report) ===
user32: sysparams.c:3019: Test failed: 28: wrong value 136 vs 258 sysparams.c:3019: Test failed: 29: wrong value 39 vs 71 sysparams.c:3019: Test failed: 34: wrong value 136 vs 258 sysparams.c:3019: Test failed: 35: wrong value 39 vs 71 sysparams.c:669: Test failed: incorrect value for 2: 1 != 2 sysparams.c:677: Test failed: incorrect value for 2: 1 != 2 sysparams.c:669: Test failed: incorrect value for 2: 1 != 3 sysparams.c:677: Test failed: incorrect value for 2: 1 != 3 sysparams.c:669: Test failed: incorrect value for 2: 1 != 2 sysparams.c:677: Test failed: incorrect value for 2: 1 != 2 sysparams.c:669: Test failed: incorrect value for 2: 1 != 2 sysparams.c:677: Test failed: incorrect value for 2: 1 != 2 sysparams.c:669: Test failed: incorrect value for 2: 1 != 2 sysparams.c:677: Test failed: incorrect value for 2: 1 != 2 sysparams.c:2514: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2525: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1 sysparams.c:2847: Test failed: GetSystemMetrics(SM_CXSMICON): expected 16 actual 4 sysparams.c:2848: Test failed: GetSystemMetrics(SM_CYSMICON): expected 16 actual 4 sysparams.c:3687: Test failed: 10: wrong value 4294967295 sysparams.c:3688: Test failed: 10: not valid sysparams.c:3701: Test failed: 80000010: wrong value 4294967295 sysparams.c:3702: Test failed: 80000010: not valid sysparams.c:3691: Test failed: 22: wrong value 2 sysparams.c:3692: Test failed: 22: valid sysparams.c:3706: Test failed: 80000022: wrong value 2 sysparams.c:3707: Test failed: 80000022: valid sysparams.c:3019: Test failed: 28: wrong value 136 vs 258 sysparams.c:3019: Test failed: 29: wrong value 39 vs 71 sysparams.c:3019: Test failed: 34: wrong value 136 vs 258 sysparams.c:3019: Test failed: 35: wrong value 39 vs 71
=== w1064v1809_he (32 bit report) ===
user32: sysparams.c:2514: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2525: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809_ja (32 bit report) ===
user32: sysparams.c:2514: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2525: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809_zh_CN (32 bit report) ===
user32: sysparams.c:3019: Test failed: 28: wrong value 136 vs 262 sysparams.c:3019: Test failed: 29: wrong value 39 vs 71 sysparams.c:3019: Test failed: 34: wrong value 136 vs 262 sysparams.c:3019: Test failed: 35: wrong value 39 vs 71 sysparams.c:669: Test failed: incorrect value for 2: 1 != 2 sysparams.c:677: Test failed: incorrect value for 2: 1 != 2 sysparams.c:669: Test failed: incorrect value for 2: 1 != 3 sysparams.c:677: Test failed: incorrect value for 2: 1 != 3 sysparams.c:669: Test failed: incorrect value for 2: 1 != 2 sysparams.c:677: Test failed: incorrect value for 2: 1 != 2 sysparams.c:669: Test failed: incorrect value for 2: 1 != 2 sysparams.c:677: Test failed: incorrect value for 2: 1 != 2 sysparams.c:669: Test failed: incorrect value for 2: 1 != 2 sysparams.c:677: Test failed: incorrect value for 2: 1 != 2 sysparams.c:2514: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2525: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1 sysparams.c:2847: Test failed: GetSystemMetrics(SM_CXSMICON): expected 16 actual 4 sysparams.c:2848: Test failed: GetSystemMetrics(SM_CYSMICON): expected 16 actual 4 sysparams.c:3687: Test failed: 10: wrong value 4294967295 sysparams.c:3688: Test failed: 10: not valid sysparams.c:3701: Test failed: 80000010: wrong value 4294967295 sysparams.c:3702: Test failed: 80000010: not valid sysparams.c:3691: Test failed: 22: wrong value 2 sysparams.c:3692: Test failed: 22: valid sysparams.c:3706: Test failed: 80000022: wrong value 2 sysparams.c:3707: Test failed: 80000022: valid sysparams.c:3019: Test failed: 28: wrong value 136 vs 262 sysparams.c:3019: Test failed: 29: wrong value 39 vs 71 sysparams.c:3019: Test failed: 34: wrong value 136 vs 262 sysparams.c:3019: Test failed: 35: wrong value 39 vs 71