From 1b33e0f72e87e3c3af905df27c339887f4cb5a18 Mon Sep 17 00:00:00 2001 From: Zhiyi Zhang Date: Wed, 3 Jun 2020 22:28:32 +0800 Subject: [PATCH] winex11.drv: Set DM_POSITION and DM_DISPLAYORIENTATION when reporting registry display settings. 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 Signed-off-by: Alexandre Julliard --- 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