[PATCH 2/2] uxtheme/tests: Avoid fix blurry apps popup in test_GetThemePartSize().

Zhiyi Zhang zzhang at codeweavers.com
Mon Jan 10 01:38:29 CST 2022


When changing DPI, a fix blurry apps popup may appear on Windows 10. The popup may interfere with
other tests as it steals focus, causing them to fail. So set IgnorePerProcessSystemDPIToast to 1 to
temporarily disable the popup.

Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
 dlls/uxtheme/tests/system.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/dlls/uxtheme/tests/system.c b/dlls/uxtheme/tests/system.c
index b085e639784..0385af663e3 100644
--- a/dlls/uxtheme/tests/system.c
+++ b/dlls/uxtheme/tests/system.c
@@ -997,11 +997,13 @@ todo_wine
 
 static void test_GetThemePartSize(void)
 {
+    static const DWORD enabled = 1;
     DPI_AWARENESS_CONTEXT old_context;
     unsigned int old_dpi, current_dpi;
     HTHEME htheme = NULL;
     HWND hwnd = NULL;
     SIZE size, size2;
+    HKEY key = NULL;
     HRESULT hr;
     HDC hdc;
 
@@ -1011,6 +1013,12 @@ static void test_GetThemePartSize(void)
         return;
     }
 
+    /* Set IgnorePerProcessSystemDPIToast to 1 to disable "fix blurry apps popup" on Windows 10,
+     * which may interfere other tests because it steals focus */
+    RegOpenKeyA(HKEY_CURRENT_USER, "Control Panel\\Desktop", &key);
+    RegSetValueExA(key, "IgnorePerProcessSystemDPIToast", 0, REG_DWORD, (const BYTE *)&enabled,
+                   sizeof(enabled));
+
     old_context = pSetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);
     current_dpi = get_primary_monitor_effective_dpi();
     old_dpi = current_dpi;
@@ -1100,6 +1108,11 @@ done:
         CloseThemeData(htheme);
     if (get_primary_monitor_effective_dpi() != old_dpi)
         set_primary_monitor_effective_dpi(old_dpi);
+    if (key)
+    {
+        RegDeleteValueA(key, "IgnorePerProcessSystemDPIToast");
+        RegCloseKey(key);
+    }
     pSetThreadDpiAwarenessContext(old_context);
 }
 
-- 
2.32.0



More information about the wine-devel mailing list