Set DM_POSITION and DM_DISPLAYORIENTATION when calling EnumDisplaySettings(ENUM_REGISTRY_SETTINGS). DM_DISPLAYFIXEDOUTPUT is not set because it is not necessarily reported according to tests.
Signed-off-by: Zhiyi Zhang zzhang@codeweavers.com --- dlls/user32/tests/sysparams.c | 3 ++- dlls/winex11.drv/settings.c | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/user32/tests/sysparams.c b/dlls/user32/tests/sysparams.c index b37af4d4203..6750325a291 100644 --- a/dlls/user32/tests/sysparams.c +++ b/dlls/user32/tests/sysparams.c @@ -3319,7 +3319,8 @@ static void test_EnumDisplaySettings(void) } else { - todo_wine ok((dm.dmFields & mode_fields) == mode_fields, "Expect dmFields to contain %#x, got %#x\n", + todo_wine_if(mode != ENUM_REGISTRY_SETTINGS) + ok((dm.dmFields & mode_fields) == mode_fields, "Expect dmFields to contain %#x, got %#x\n", mode_fields, dm.dmFields); }
diff --git a/dlls/winex11.drv/settings.c b/dlls/winex11.drv/settings.c index 70ce35361b6..bc9f7aa1dca 100644 --- a/dlls/winex11.drv/settings.c +++ b/dlls/winex11.drv/settings.c @@ -210,7 +210,9 @@ static BOOL read_registry_settings(DEVMODEW *dm) dm->dmFields |= DM_DISPLAYFLAGS; query_value("DefaultSettings.XPanning", &dm->u1.s2.dmPosition.x); query_value("DefaultSettings.YPanning", &dm->u1.s2.dmPosition.y); + dm->dmFields |= DM_POSITION; query_value("DefaultSettings.Orientation", &dm->u1.s2.dmDisplayOrientation); + dm->dmFields |= DM_DISPLAYORIENTATION; query_value("DefaultSettings.FixedOutput", &dm->u1.s2.dmDisplayFixedOutput);
#undef query_value
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=72735
Your paranoid android.
=== w8 (32 bit report) ===
user32: sysparams.c:2508: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2519: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w8adm (32 bit report) ===
user32: sysparams.c:2508: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2519: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809 (32 bit report) ===
user32: sysparams.c:224: Test failed: Unexpected WM_DISPLAYCHANGE message sysparams.c:2508: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2519: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809_2scr (32 bit report) ===
user32: sysparams.c:224: Test failed: Unexpected WM_DISPLAYCHANGE message sysparams.c:2508: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2519: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809_ar (32 bit report) ===
user32: sysparams.c:2508: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2519: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809_he (32 bit report) ===
user32: sysparams.c:2508: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2519: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809_ja (32 bit report) ===
user32: sysparams.c:2508: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2519: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1
=== w1064v1809_zh_CN (32 bit report) ===
user32: sysparams.c:2508: Test failed: Waiting for the WM_DISPLAYCHANGE message timed out sysparams.c:2519: Test failed: Set bpp 32, but WM_DISPLAYCHANGE reported bpp -1