[PATCH 1/6] winex11.drv: Set DM_POSITION and DM_DISPLAYORIENTATION when reporting registry display settings.

Zhiyi Zhang zzhang at codeweavers.com
Wed Jun 3 09:28:32 CDT 2020


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 at 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
-- 
2.25.1




More information about the wine-devel mailing list