Zhiyi Zhang : uxtheme: Make IsThemeDialogTextureEnabled() return TRUE for all valid flags without ETDT_DISABLE.
Alexandre Julliard
julliard at winehq.org
Fri Jan 21 15:54:47 CST 2022
Module: wine
Branch: master
Commit: 85de3a4e16d8ef860f754acdc0930e902b591ac4
URL: https://source.winehq.org/git/wine.git/?a=commit;h=85de3a4e16d8ef860f754acdc0930e902b591ac4
Author: Zhiyi Zhang <zzhang at codeweavers.com>
Date: Fri Jan 21 15:48:01 2022 +0800
uxtheme: Make IsThemeDialogTextureEnabled() return TRUE for all valid flags without ETDT_DISABLE.
Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/uxtheme/draw.c | 7 ++-----
dlls/uxtheme/tests/system.c | 17 ++++++-----------
2 files changed, 8 insertions(+), 16 deletions(-)
diff --git a/dlls/uxtheme/draw.c b/dlls/uxtheme/draw.c
index a7942b03f97..b6e5f0230e5 100644
--- a/dlls/uxtheme/draw.c
+++ b/dlls/uxtheme/draw.c
@@ -69,14 +69,11 @@ HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags)
BOOL WINAPI IsThemeDialogTextureEnabled(HWND hwnd)
{
DWORD dwDialogTextureFlags;
+
TRACE("(%p)\n", hwnd);
dwDialogTextureFlags = HandleToUlong( GetPropW( hwnd, (LPCWSTR)MAKEINTATOM(atDialogThemeEnabled) ));
- if (dwDialogTextureFlags == 0)
- /* Means EnableThemeDialogTexture wasn't called for this dialog */
- return TRUE;
-
- return (dwDialogTextureFlags & ETDT_ENABLE) && !(dwDialogTextureFlags & ETDT_DISABLE);
+ return dwDialogTextureFlags && !(dwDialogTextureFlags & ETDT_DISABLE);
}
/***********************************************************************
diff --git a/dlls/uxtheme/tests/system.c b/dlls/uxtheme/tests/system.c
index 03e435eb463..93994fa8364 100644
--- a/dlls/uxtheme/tests/system.c
+++ b/dlls/uxtheme/tests/system.c
@@ -1649,12 +1649,12 @@ static void test_EnableThemeDialogTexture(void)
}
invalid_flag_tests[] =
{
- {0, FALSE},
+ {0, FALSE, TRUE},
{ETDT_DISABLE | ETDT_ENABLE, FALSE},
{ETDT_ENABLETAB | ETDT_ENABLEAEROWIZARDTAB, TRUE},
- {ETDT_USETABTEXTURE | ETDT_USEAEROWIZARDTABTEXTURE, TRUE, TRUE},
+ {ETDT_USETABTEXTURE | ETDT_USEAEROWIZARDTABTEXTURE, TRUE},
{ETDT_VALIDBITS, FALSE},
- {~ETDT_VALIDBITS, FALSE},
+ {~ETDT_VALIDBITS, FALSE, TRUE},
{~ETDT_VALIDBITS | ETDT_DISABLE, FALSE}
};
@@ -1746,7 +1746,6 @@ static void test_EnableThemeDialogTexture(void)
/* Test dialog texture is disabled by default. EnableThemeDialogTexture() needs to be called */
ret = IsThemeDialogTextureEnabled(dialog);
- todo_wine
ok(!ret, "Expected theme dialog texture disabled.\n");
ok(GetWindowTheme(dialog) == NULL, "Expected NULL theme handle.\n");
@@ -2021,7 +2020,7 @@ static void test_EnableThemeDialogTexture(void)
"EnableThemeDialogTexture first flag", FALSE);
ret = IsThemeDialogTextureEnabled(dialog);
/* Non-zero flags without ETDT_DISABLE enables dialog texture */
- todo_wine_if(flags[i] == ETDT_USETABTEXTURE || flags[i] == ETDT_USEAEROWIZARDTABTEXTURE)
+ todo_wine_if(flags[i] == 0)
ok(ret == (!(flags[i] & ETDT_DISABLE) && flags[i]), "Wrong dialog texture status.\n");
child = GetDlgItem(dialog, 100);
@@ -2044,10 +2043,9 @@ static void test_EnableThemeDialogTexture(void)
ret = IsThemeDialogTextureEnabled(dialog);
/* If the flag is zero, it will have previous dialog texture status */
if (flags[j])
- todo_wine_if(flags[j] == ETDT_USETABTEXTURE || flags[j] == ETDT_USEAEROWIZARDTABTEXTURE)
ok(ret == !(flags[j] & ETDT_DISABLE), "Wrong dialog texture status.\n");
else
- todo_wine_if((!(flags[i] & ETDT_DISABLE) && flags[i]))
+ todo_wine_if(!flags[i] || flags[i] == ETDT_DISABLE || flags[i] == (ETDT_DISABLE | ETDT_ENABLE))
ok(ret == (!(flags[i] & ETDT_DISABLE) && flags[i]), "Wrong dialog texture status.\n");
lr = SendMessageA(dialog, WM_ERASEBKGND, (WPARAM)child_hdc, 0);
ok(lr != 0, "WM_ERASEBKGND failed.\n");
@@ -2159,12 +2157,12 @@ static void test_EnableThemeDialogTexture(void)
0, 0, NULL);
ok(hwnd != NULL, "CreateWindowA failed, error %d.\n", GetLastError());
ret = IsThemeDialogTextureEnabled(hwnd);
- todo_wine
ok(!ret, "Wrong dialog texture status.\n");
child = CreateWindowA(WC_STATICA, "child", WS_CHILD | WS_VISIBLE, 0, 0, 50, 50, hwnd, 0, 0,
NULL);
ok(child != NULL, "CreateWindowA failed, error %d.\n", GetLastError());
ret = IsThemeDialogTextureEnabled(hwnd);
+ todo_wine
ok(ret, "Wrong dialog texture status.\n");
/* Test that if you move the child control to another window, it doesn't enables tab texture for
@@ -2173,18 +2171,15 @@ static void test_EnableThemeDialogTexture(void)
0, 0, NULL);
ok(hwnd2 != NULL, "CreateWindowA failed, error %d.\n", GetLastError());
ret = IsThemeDialogTextureEnabled(hwnd2);
- todo_wine
ok(!ret, "Wrong dialog texture status.\n");
SetParent(child, hwnd2);
ok(GetParent(child) == hwnd2, "Wrong parent.\n");
ret = IsThemeDialogTextureEnabled(hwnd2);
- todo_wine
ok(!ret, "Wrong dialog texture status.\n");
InvalidateRect(child, NULL, TRUE);
flush_events();
ret = IsThemeDialogTextureEnabled(hwnd2);
- todo_wine
ok(!ret, "Wrong dialog texture status.\n");
DestroyWindow(hwnd2);
More information about the wine-cvs
mailing list