From 8f98574e1d4a2155061c40816a597b7697aa6654 Mon Sep 17 00:00:00 2001 From: Giannis Adamopoulos Date: Tue, 21 Nov 2017 10:51:06 +0200 Subject: [PATCH] [UXTHEME] -Don't change the behaviour of DefWindowProc if SetWindowRgn was called before --- dll/win32/uxtheme/themehooks.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/dll/win32/uxtheme/themehooks.c b/dll/win32/uxtheme/themehooks.c index 43620d8ff3e..48cfdb211a6 100644 --- a/dll/win32/uxtheme/themehooks.c +++ b/dll/win32/uxtheme/themehooks.c @@ -267,8 +267,14 @@ int OnPostWinPosChanged(HWND hWnd, WINDOWPOS* pWinPos) static LRESULT CALLBACK ThemeDefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) -{ - if(!IsAppThemed() || !(GetThemeAppProperties() & STAP_ALLOW_NONCLIENT)) +{ + PWND_DATA pwndData; + + pwndData = (PWND_DATA)GetPropW(hWnd, (LPCWSTR)MAKEINTATOM(atWndContext)); + + if(!IsAppThemed() || + !(GetThemeAppProperties() & STAP_ALLOW_NONCLIENT) || + (pwndData && pwndData->HasAppDefinedRgn)) { return g_user32ApiHook.DefWindowProcW(hWnd, Msg, @@ -286,7 +292,13 @@ ThemeDefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) static LRESULT CALLBACK ThemeDefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { - if(!IsAppThemed() || !(GetThemeAppProperties() & STAP_ALLOW_NONCLIENT)) + PWND_DATA pwndData; + + pwndData = (PWND_DATA)GetPropW(hWnd, (LPCWSTR)MAKEINTATOM(atWndContext)); + + if(!IsAppThemed() || + !(GetThemeAppProperties() & STAP_ALLOW_NONCLIENT) || + (pwndData && pwndData->HasAppDefinedRgn)) { return g_user32ApiHook.DefWindowProcA(hWnd, Msg,