diff --git a/patches/uxtheme-GTK_Theming/0000-Revert-uxtheme-Build-with-msvcrt.patch b/patches/uxtheme-GTK_Theming/0000-Revert-uxtheme-Build-with-msvcrt.patch new file mode 100644 index 00000000..9fc30fc2 --- /dev/null +++ b/patches/uxtheme-GTK_Theming/0000-Revert-uxtheme-Build-with-msvcrt.patch @@ -0,0 +1,217 @@ +From 8eb7fb60224342ef7efb8b0a7080973a9ade1daf Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 18 Sep 2019 18:52:32 -0500 +Subject: [PATCH] Revert "uxtheme: Build with msvcrt." + +This reverts commit 21a19fb4e35f4b8c61958ba25b0058c1e090f2b3. +--- + dlls/uxtheme/Makefile.in | 2 -- + dlls/uxtheme/buffer.c | 2 ++ + dlls/uxtheme/draw.c | 2 ++ + dlls/uxtheme/main.c | 2 ++ + dlls/uxtheme/metric.c | 2 ++ + dlls/uxtheme/msstyles.c | 17 ++++++++++------- + dlls/uxtheme/property.c | 2 ++ + dlls/uxtheme/stylemap.c | 2 ++ + dlls/uxtheme/system.c | 2 ++ + dlls/uxtheme/uxini.c | 2 ++ + 10 files changed, 26 insertions(+), 9 deletions(-) + +diff --git a/dlls/uxtheme/Makefile.in b/dlls/uxtheme/Makefile.in +index 61817ee54..c3fff30ba 100644 +--- a/dlls/uxtheme/Makefile.in ++++ b/dlls/uxtheme/Makefile.in +@@ -3,8 +3,6 @@ IMPORTLIB = uxtheme + IMPORTS = user32 gdi32 advapi32 + DELAYIMPORTS = msimg32 + +-EXTRADLLFLAGS = -mno-cygwin +- + C_SRCS = \ + buffer.c \ + draw.c \ +diff --git a/dlls/uxtheme/buffer.c b/dlls/uxtheme/buffer.c +index b07284f8e..32d341cb7 100644 +--- a/dlls/uxtheme/buffer.c ++++ b/dlls/uxtheme/buffer.c +@@ -19,6 +19,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + ++#include "config.h" ++ + #include + #include + +diff --git a/dlls/uxtheme/draw.c b/dlls/uxtheme/draw.c +index 3dcc58205..69c53b9eb 100644 +--- a/dlls/uxtheme/draw.c ++++ b/dlls/uxtheme/draw.c +@@ -18,6 +18,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + ++#include "config.h" ++ + #include + #include + +diff --git a/dlls/uxtheme/main.c b/dlls/uxtheme/main.c +index 5e5610a1f..73894e820 100644 +--- a/dlls/uxtheme/main.c ++++ b/dlls/uxtheme/main.c +@@ -18,6 +18,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + ++#include "config.h" ++ + #include + + #include "windef.h" +diff --git a/dlls/uxtheme/metric.c b/dlls/uxtheme/metric.c +index 2d5a09d02..073422f1c 100644 +--- a/dlls/uxtheme/metric.c ++++ b/dlls/uxtheme/metric.c +@@ -18,6 +18,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + ++#include "config.h" ++ + #include + + #include "windef.h" +diff --git a/dlls/uxtheme/msstyles.c b/dlls/uxtheme/msstyles.c +index cee5aaf05..bc8eca7b3 100644 +--- a/dlls/uxtheme/msstyles.c ++++ b/dlls/uxtheme/msstyles.c +@@ -18,6 +18,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + ++#include "config.h" ++ + #include + #include + +@@ -32,6 +34,7 @@ + + #include "msstyles.h" + ++#include "wine/unicode.h" + #include "wine/debug.h" + #include "wine/heap.h" + +@@ -349,7 +352,7 @@ static BOOL MSSTYLES_ParseIniSectionName(LPCWSTR lpSection, DWORD dwLen, LPWSTR + *iStateId = 0; + comp = sec; + /* Get the application name */ +- tmp = wcschr(comp, ':'); ++ tmp = strchrW(comp, ':'); + if(tmp) { + *tmp++ = 0; + tmp++; +@@ -357,19 +360,19 @@ static BOOL MSSTYLES_ParseIniSectionName(LPCWSTR lpSection, DWORD dwLen, LPWSTR + comp = tmp; + } + +- tmp = wcschr(comp, '.'); ++ tmp = strchrW(comp, '.'); + if(tmp) { + *tmp++ = 0; + lstrcpynW(szClassName, comp, MAX_THEME_CLASS_NAME); + comp = tmp; + /* now get the part & state */ +- tmp = wcschr(comp, '('); ++ tmp = strchrW(comp, '('); + if(tmp) { + *tmp++ = 0; + lstrcpynW(part, comp, ARRAY_SIZE(part)); + comp = tmp; + /* now get the state */ +- tmp = wcschr(comp, ')'); ++ tmp = strchrW(comp, ')'); + if (!tmp) + return FALSE; + *tmp = 0; +@@ -380,13 +383,13 @@ static BOOL MSSTYLES_ParseIniSectionName(LPCWSTR lpSection, DWORD dwLen, LPWSTR + } + } + else { +- tmp = wcschr(comp, '('); ++ tmp = strchrW(comp, '('); + if(tmp) { + *tmp++ = 0; + lstrcpynW(szClassName, comp, MAX_THEME_CLASS_NAME); + comp = tmp; + /* now get the state */ +- tmp = wcschr(comp, ')'); ++ tmp = strchrW(comp, ')'); + if (!tmp) + return FALSE; + *tmp = 0; +@@ -1009,7 +1012,7 @@ PTHEME_CLASS MSSTYLES_OpenThemeClass(LPCWSTR pszAppName, LPCWSTR pszClassList) + } + + start = pszClassList; +- while((end = wcschr(start, ';'))) { ++ while((end = strchrW(start, ';'))) { + len = end-start; + lstrcpynW(szClassName, start, min(len+1, ARRAY_SIZE(szClassName))); + start = end+1; +diff --git a/dlls/uxtheme/property.c b/dlls/uxtheme/property.c +index 93a72ab91..0e077aeec 100644 +--- a/dlls/uxtheme/property.c ++++ b/dlls/uxtheme/property.c +@@ -18,6 +18,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + ++#include "config.h" ++ + #include + + #include "windef.h" +diff --git a/dlls/uxtheme/stylemap.c b/dlls/uxtheme/stylemap.c +index 149ee0eb5..19e3c9322 100644 +--- a/dlls/uxtheme/stylemap.c ++++ b/dlls/uxtheme/stylemap.c +@@ -18,6 +18,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + ++#include "config.h" ++ + #include + + #include "windef.h" +diff --git a/dlls/uxtheme/system.c b/dlls/uxtheme/system.c +index 6e9c0f223..c898ad32e 100644 +--- a/dlls/uxtheme/system.c ++++ b/dlls/uxtheme/system.c +@@ -18,6 +18,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + ++#include "config.h" ++ + #include + #include + +diff --git a/dlls/uxtheme/uxini.c b/dlls/uxtheme/uxini.c +index 361e7f13f..1581ff469 100644 +--- a/dlls/uxtheme/uxini.c ++++ b/dlls/uxtheme/uxini.c +@@ -18,6 +18,8 @@ + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + ++#include "config.h" ++ + #include + + #include "windef.h" +-- +2.23.0 + diff --git a/patches/uxtheme-GTK_Theming/0001-uxtheme-Initial-implementation-of-GTK-backend.patch b/patches/uxtheme-GTK_Theming/0001-uxtheme-Initial-implementation-of-GTK-backend.patch index 22c6be8a..8bb75e14 100644 --- a/patches/uxtheme-GTK_Theming/0001-uxtheme-Initial-implementation-of-GTK-backend.patch +++ b/patches/uxtheme-GTK_Theming/0001-uxtheme-Initial-implementation-of-GTK-backend.patch @@ -1,7 +1,7 @@ -From 96632f2ae19ee3fa157f58db5cf3f3aaebc52d2e Mon Sep 17 00:00:00 2001 +From 661d9d1f1f04ae904f4420f4a067fc23dae45c6f Mon Sep 17 00:00:00 2001 From: Ivan Akulinchev Date: Sat, 9 Feb 2019 15:18:54 -0600 -Subject: [PATCH] uxtheme: Initial implementation of GTK backend. +Subject: [PATCH 1/2] uxtheme: Initial implementation of GTK backend. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @@ -19,8 +19,7 @@ Additional changes by Sebastian Lackner : * Fix incorrect class enumaration in OpenThemeData(). * Avoid unnecessary goto in DrawThemeBackgroundEx(). --- - aclocal.m4 | 20 + - configure.ac | 20 + + configure.ac | 16 + dlls/uxtheme/Makefile.in | 15 + dlls/uxtheme/draw.c | 30 ++ dlls/uxtheme/gtk-button.c | 516 +++++++++++++++++++ @@ -42,7 +41,7 @@ Additional changes by Sebastian Lackner : dlls/uxtheme/system.c | 34 +- dlls/uxtheme/uxthemedll.h | 72 +++ dlls/uxtheme/uxthemegtk.h | 129 +++++ - 23 files changed, 3785 insertions(+), 1 deletion(-) + 22 files changed, 3761 insertions(+), 1 deletion(-) create mode 100644 dlls/uxtheme/gtk-button.c create mode 100644 dlls/uxtheme/gtk-combobox.c create mode 100644 dlls/uxtheme/gtk-edit.c @@ -59,39 +58,8 @@ Additional changes by Sebastian Lackner : create mode 100644 dlls/uxtheme/gtk.c create mode 100644 dlls/uxtheme/uxthemegtk.h -diff --git a/aclocal.m4 b/aclocal.m4 -index ed0c3a8317c..4151fe7f423 100644 ---- a/aclocal.m4 -+++ b/aclocal.m4 -@@ -126,6 +126,26 @@ test -z "$ac_libs" || ac_libs=`echo " $ac_libs" | sed 's/ -L\([[^/]]\)/ -L\$(top - AS_VAR_POPDEF([ac_libs])dnl - AS_VAR_POPDEF([ac_cflags])])dnl - -+dnl **** Get include path from pkg-config **** -+dnl -+dnl Usage: WINE_PACKAGE_INCLUDE_FLAGS(var,pkg-name,[cflags-alternate,[checks]]]) -+dnl -+AC_DEFUN([WINE_PACKAGE_INCLUDE_FLAGS], -+[AC_REQUIRE([WINE_PATH_PKG_CONFIG])dnl -+AS_VAR_PUSHDEF([ac_cflags],[[$1]_CFLAGS])dnl -+AC_ARG_VAR(ac_cflags, [C compiler flags for $2, overriding pkg-config])dnl -+AS_VAR_IF([ac_cflags],[], -+ [AS_VAR_SET_IF([PKG_CONFIG], -+ [ac_cflags=`$PKG_CONFIG --cflags-only-I [$2] 2>/dev/null`])]) -+m4_ifval([$3],[test "$cross_compiling" = yes || ac_cflags=[$]{ac_cflags:-[$3]}]) -+AS_ECHO(["$as_me:${as_lineno-$LINENO}: $2 cflags: $ac_cflags"]) >&AS_MESSAGE_LOG_FD -+ac_save_CPPFLAGS=$CPPFLAGS -+CPPFLAGS="$CPPFLAGS $ac_cflags" -+$4 -+CPPFLAGS=$ac_save_CPPFLAGS -+test -z "$ac_cflags" || ac_cflags=`echo " $ac_cflags" | sed 's/ -I\([[^/]]\)/ -I\$(top_builddir)\/\1/g'` -+AS_VAR_POPDEF([ac_cflags])])dnl -+ - dnl **** Link C code with an assembly file **** - dnl - dnl Usage: WINE_TRY_ASM_LINK(asm-code,includes,function,[action-if-found,[action-if-not-found]]) diff --git a/configure.ac b/configure.ac -index d6d51ebfc60..beb160aa389 100644 +index 1c912a30a..c4373aeb2 100644 --- a/configure.ac +++ b/configure.ac @@ -56,6 +56,7 @@ AC_ARG_WITH(gsm, AS_HELP_STRING([--without-gsm],[do not use libgsm (GSM 06 @@ -102,24 +70,20 @@ index d6d51ebfc60..beb160aa389 100644 AC_ARG_WITH(hal, AS_HELP_STRING([--without-hal],[do not use HAL (dynamic device support)])) AC_ARG_WITH(inotify, AS_HELP_STRING([--without-inotify],[do not use inotify (filesystem change notifications)])) AC_ARG_WITH(jpeg, AS_HELP_STRING([--without-jpeg],[do not use JPEG])) -@@ -1571,6 +1572,25 @@ fi +@@ -1539,6 +1540,21 @@ fi WINE_NOTICE_WITH(cms,[test "$ac_cv_lib_lcms2_cmsOpenProfileFromFile" != "yes"], [liblcms2 ${notice_platform}development files not found, Color Management won't be supported.]) +dnl **** Check for GTK3 **** +if test "x$with_gtk3" != "xno"; +then -+ WINE_PACKAGE_INCLUDE_FLAGS(GTK3, [gtk+-3.0],, ++ WINE_PACKAGE_FLAGS(GTK3, [gtk+-3.0],,,, + [AC_CHECK_HEADERS([gtk/gtk.h]) + if test "$ac_cv_header_gtk_gtk_h" = "yes" + then + WINE_CHECK_SONAME(gobject-2.0,g_object_unref, + [WINE_CHECK_SONAME(cairo,cairo_destroy, -+ [WINE_CHECK_SONAME(gtk-3,gtk_style_context_save, -+ [AC_DEFINE(HAVE_GTK3, 1, [Define if GTK 3 is installed])])])]) -+ test "x$ac_cv_lib_soname_gtk_3" != "x" || GTK3_CFLAGS="" -+ else -+ GTK3_CFLAGS="" ++ [WINE_CHECK_SONAME(gtk-3,gtk_style_context_save)])],,[$GTK3_LIBS]) + fi]) +fi +WINE_NOTICE_WITH(gtk3,[test "x$ac_cv_lib_soname_gtk_3" = x], @@ -129,17 +93,15 @@ index d6d51ebfc60..beb160aa389 100644 if test "x$with_freetype" != "xno" then diff --git a/dlls/uxtheme/Makefile.in b/dlls/uxtheme/Makefile.in -index 61817ee5468..d0409300230 100644 +index c3fff30ba..e09f891ee 100644 --- a/dlls/uxtheme/Makefile.in +++ b/dlls/uxtheme/Makefile.in -@@ -2,12 +2,27 @@ MODULE = uxtheme.dll +@@ -2,10 +2,25 @@ MODULE = uxtheme.dll IMPORTLIB = uxtheme IMPORTS = user32 gdi32 advapi32 DELAYIMPORTS = msimg32 +EXTRAINCL = $(GTK3_CFLAGS) - EXTRADLLFLAGS = -mno-cygwin - C_SRCS = \ buffer.c \ draw.c \ @@ -161,10 +123,10 @@ index 61817ee5468..d0409300230 100644 metric.c \ msstyles.c \ diff --git a/dlls/uxtheme/draw.c b/dlls/uxtheme/draw.c -index 3dcc58205b0..113793fed7e 100644 +index 69c53b9eb..dbcbaab79 100644 --- a/dlls/uxtheme/draw.c +++ b/dlls/uxtheme/draw.c -@@ -53,6 +53,10 @@ HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags) +@@ -55,6 +55,10 @@ HRESULT WINAPI EnableThemeDialogTexture(HWND hwnd, DWORD dwFlags) BOOL res; TRACE("(%p,0x%08x\n", hwnd, dwFlags); @@ -175,7 +137,7 @@ index 3dcc58205b0..113793fed7e 100644 res = SetPropW (hwnd, (LPCWSTR)MAKEINTATOM(atDialogThemeEnabled), UlongToHandle(dwFlags|0x80000000)); /* 0x80000000 serves as a "flags set" flag */ -@@ -72,6 +76,9 @@ BOOL WINAPI IsThemeDialogTextureEnabled(HWND hwnd) +@@ -74,6 +78,9 @@ BOOL WINAPI IsThemeDialogTextureEnabled(HWND hwnd) DWORD dwDialogTextureFlags; TRACE("(%p)\n", hwnd); @@ -185,7 +147,7 @@ index 3dcc58205b0..113793fed7e 100644 dwDialogTextureFlags = HandleToUlong( GetPropW( hwnd, (LPCWSTR)MAKEINTATOM(atDialogThemeEnabled) )); if (dwDialogTextureFlags == 0) /* Means EnableThemeDialogTexture wasn't called for this dialog */ -@@ -1025,6 +1032,9 @@ HRESULT WINAPI DrawThemeBackgroundEx(HTHEME hTheme, HDC hdc, int iPartId, +@@ -1027,6 +1034,9 @@ HRESULT WINAPI DrawThemeBackgroundEx(HTHEME hTheme, HDC hdc, int iPartId, if(!hTheme) return E_HANDLE; @@ -195,7 +157,7 @@ index 3dcc58205b0..113793fed7e 100644 GetThemeEnumValue(hTheme, iPartId, iStateId, TMT_BGTYPE, &bgtype); if (bgtype == BT_NONE) return S_OK; -@@ -1668,6 +1678,10 @@ HRESULT WINAPI DrawThemeTextEx(HTHEME hTheme, HDC hdc, int iPartId, int iStateId +@@ -1670,6 +1680,10 @@ HRESULT WINAPI DrawThemeTextEx(HTHEME hTheme, HDC hdc, int iPartId, int iStateId if(!hTheme) return E_HANDLE; @@ -206,7 +168,7 @@ index 3dcc58205b0..113793fed7e 100644 if (options->dwFlags & ~DTT_TEXTCOLOR) FIXME("unsupported flags 0x%08x\n", options->dwFlags); -@@ -1930,6 +1944,9 @@ HRESULT WINAPI GetThemeBackgroundRegion(HTHEME hTheme, HDC hdc, int iPartId, +@@ -1932,6 +1946,9 @@ HRESULT WINAPI GetThemeBackgroundRegion(HTHEME hTheme, HDC hdc, int iPartId, if(!pRect || !pRegion) return E_POINTER; @@ -216,7 +178,7 @@ index 3dcc58205b0..113793fed7e 100644 GetThemeEnumValue(hTheme, iPartId, iStateId, TMT_BGTYPE, &bgtype); if(bgtype == BT_IMAGEFILE) { hr = create_image_bg_region(hTheme, iPartId, iStateId, pRect, pRegion); -@@ -1981,6 +1998,9 @@ HRESULT WINAPI GetThemePartSize(HTHEME hTheme, HDC hdc, int iPartId, +@@ -1983,6 +2000,9 @@ HRESULT WINAPI GetThemePartSize(HTHEME hTheme, HDC hdc, int iPartId, if(!hTheme) return E_HANDLE; @@ -226,7 +188,7 @@ index 3dcc58205b0..113793fed7e 100644 GetThemeEnumValue(hTheme, iPartId, iStateId, TMT_BGTYPE, &bgtype); if (bgtype == BT_NONE) /* do nothing */; -@@ -2017,6 +2037,10 @@ HRESULT WINAPI GetThemeTextExtent(HTHEME hTheme, HDC hdc, int iPartId, +@@ -2019,6 +2039,10 @@ HRESULT WINAPI GetThemeTextExtent(HTHEME hTheme, HDC hdc, int iPartId, if(!hTheme) return E_HANDLE; @@ -237,7 +199,7 @@ index 3dcc58205b0..113793fed7e 100644 if(pBoundingRect) rt = *pBoundingRect; -@@ -2054,6 +2078,9 @@ HRESULT WINAPI GetThemeTextMetrics(HTHEME hTheme, HDC hdc, int iPartId, +@@ -2056,6 +2080,9 @@ HRESULT WINAPI GetThemeTextMetrics(HTHEME hTheme, HDC hdc, int iPartId, if(!hTheme) return E_HANDLE; @@ -247,7 +209,7 @@ index 3dcc58205b0..113793fed7e 100644 hr = GetThemeFont(hTheme, hdc, iPartId, iStateId, TMT_FONT, &logfont); if(SUCCEEDED(hr)) { hFont = CreateFontIndirectW(&logfont); -@@ -2092,6 +2119,9 @@ BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME hTheme, int iPartId, +@@ -2094,6 +2121,9 @@ BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME hTheme, int iPartId, if(!hTheme) return FALSE; @@ -259,7 +221,7 @@ index 3dcc58205b0..113793fed7e 100644 if (bgtype != BT_IMAGEFILE) return FALSE; diff --git a/dlls/uxtheme/gtk-button.c b/dlls/uxtheme/gtk-button.c new file mode 100644 -index 00000000000..f8b3da0dddd +index 000000000..1e8581c77 --- /dev/null +++ b/dlls/uxtheme/gtk-button.c @@ -0,0 +1,516 @@ @@ -285,7 +247,7 @@ index 00000000000..f8b3da0dddd + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -781,7 +743,7 @@ index 00000000000..f8b3da0dddd +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-combobox.c b/dlls/uxtheme/gtk-combobox.c new file mode 100644 -index 00000000000..60bcb0e6cb0 +index 000000000..f6cc04055 --- /dev/null +++ b/dlls/uxtheme/gtk-combobox.c @@ -0,0 +1,242 @@ @@ -807,7 +769,7 @@ index 00000000000..60bcb0e6cb0 + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -1029,7 +991,7 @@ index 00000000000..60bcb0e6cb0 +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-edit.c b/dlls/uxtheme/gtk-edit.c new file mode 100644 -index 00000000000..dee00d7b929 +index 000000000..834a3889c --- /dev/null +++ b/dlls/uxtheme/gtk-edit.c @@ -0,0 +1,211 @@ @@ -1055,7 +1017,7 @@ index 00000000000..dee00d7b929 + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -1246,7 +1208,7 @@ index 00000000000..dee00d7b929 +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-header.c b/dlls/uxtheme/gtk-header.c new file mode 100644 -index 00000000000..8a5b235e36c +index 000000000..c95918db2 --- /dev/null +++ b/dlls/uxtheme/gtk-header.c @@ -0,0 +1,128 @@ @@ -1272,7 +1234,7 @@ index 00000000000..8a5b235e36c + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -1380,7 +1342,7 @@ index 00000000000..8a5b235e36c +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-listbox.c b/dlls/uxtheme/gtk-listbox.c new file mode 100644 -index 00000000000..6e2759259f6 +index 000000000..89b281ded --- /dev/null +++ b/dlls/uxtheme/gtk-listbox.c @@ -0,0 +1,119 @@ @@ -1406,7 +1368,7 @@ index 00000000000..6e2759259f6 + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -1505,7 +1467,7 @@ index 00000000000..6e2759259f6 +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-listview.c b/dlls/uxtheme/gtk-listview.c new file mode 100644 -index 00000000000..9b98983f181 +index 000000000..fbc85fdcc --- /dev/null +++ b/dlls/uxtheme/gtk-listview.c @@ -0,0 +1,38 @@ @@ -1531,7 +1493,7 @@ index 00000000000..9b98983f181 + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -1549,7 +1511,7 @@ index 00000000000..9b98983f181 +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-menu.c b/dlls/uxtheme/gtk-menu.c new file mode 100644 -index 00000000000..5d00afdff0e +index 000000000..30357bc85 --- /dev/null +++ b/dlls/uxtheme/gtk-menu.c @@ -0,0 +1,189 @@ @@ -1575,7 +1537,7 @@ index 00000000000..5d00afdff0e + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -1744,7 +1706,7 @@ index 00000000000..5d00afdff0e +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-rebar.c b/dlls/uxtheme/gtk-rebar.c new file mode 100644 -index 00000000000..5d5b5a486c9 +index 000000000..493b05b6f --- /dev/null +++ b/dlls/uxtheme/gtk-rebar.c @@ -0,0 +1,102 @@ @@ -1770,7 +1732,7 @@ index 00000000000..5d5b5a486c9 + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -1852,7 +1814,7 @@ index 00000000000..5d5b5a486c9 +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-status.c b/dlls/uxtheme/gtk-status.c new file mode 100644 -index 00000000000..38f8646e747 +index 000000000..558a8227c --- /dev/null +++ b/dlls/uxtheme/gtk-status.c @@ -0,0 +1,157 @@ @@ -1878,7 +1840,7 @@ index 00000000000..38f8646e747 + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -2015,7 +1977,7 @@ index 00000000000..38f8646e747 +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-tab.c b/dlls/uxtheme/gtk-tab.c new file mode 100644 -index 00000000000..d6417f64326 +index 000000000..845dbec1a --- /dev/null +++ b/dlls/uxtheme/gtk-tab.c @@ -0,0 +1,207 @@ @@ -2041,7 +2003,7 @@ index 00000000000..d6417f64326 + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -2228,7 +2190,7 @@ index 00000000000..d6417f64326 +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-toolbar.c b/dlls/uxtheme/gtk-toolbar.c new file mode 100644 -index 00000000000..b23cf0b4ecb +index 000000000..231fffe73 --- /dev/null +++ b/dlls/uxtheme/gtk-toolbar.c @@ -0,0 +1,171 @@ @@ -2254,7 +2216,7 @@ index 00000000000..b23cf0b4ecb + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -2405,7 +2367,7 @@ index 00000000000..b23cf0b4ecb +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-trackbar.c b/dlls/uxtheme/gtk-trackbar.c new file mode 100644 -index 00000000000..a58540e3051 +index 000000000..0bd4c2d1d --- /dev/null +++ b/dlls/uxtheme/gtk-trackbar.c @@ -0,0 +1,188 @@ @@ -2431,7 +2393,7 @@ index 00000000000..a58540e3051 + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -2599,7 +2561,7 @@ index 00000000000..a58540e3051 +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk-window.c b/dlls/uxtheme/gtk-window.c new file mode 100644 -index 00000000000..657cfb03690 +index 000000000..2c4b40074 --- /dev/null +++ b/dlls/uxtheme/gtk-window.c @@ -0,0 +1,172 @@ @@ -2625,7 +2587,7 @@ index 00000000000..657cfb03690 + +#include "config.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -2777,7 +2739,7 @@ index 00000000000..657cfb03690 +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/gtk.c b/dlls/uxtheme/gtk.c new file mode 100644 -index 00000000000..9459b1f5c33 +index 000000000..ddaa96496 --- /dev/null +++ b/dlls/uxtheme/gtk.c @@ -0,0 +1,962 @@ @@ -2822,7 +2784,7 @@ index 00000000000..9459b1f5c33 + +#include "uxthemedll.h" + -+#ifdef HAVE_GTK_GTK_H ++#if defined(HAVE_GTK_GTK_H) && defined(SONAME_LIBGTK_3) + +#include "uxthemegtk.h" + @@ -3744,10 +3706,10 @@ index 00000000000..9459b1f5c33 + +#endif /* HAVE_GTK_GTK_H */ diff --git a/dlls/uxtheme/metric.c b/dlls/uxtheme/metric.c -index 2d5a09d0256..77eebc780a1 100644 +index 073422f1c..244187d19 100644 --- a/dlls/uxtheme/metric.c +++ b/dlls/uxtheme/metric.c -@@ -29,6 +29,7 @@ +@@ -31,6 +31,7 @@ #include "tmschema.h" #include "msstyles.h" @@ -3755,7 +3717,7 @@ index 2d5a09d0256..77eebc780a1 100644 #include "wine/debug.h" -@@ -44,6 +45,10 @@ BOOL WINAPI GetThemeSysBool(HTHEME hTheme, int iBoolID) +@@ -46,6 +47,10 @@ BOOL WINAPI GetThemeSysBool(HTHEME hTheme, int iBoolID) BOOL ret; TRACE("(%p, %d)\n", hTheme, iBoolID); @@ -3766,7 +3728,7 @@ index 2d5a09d0256..77eebc780a1 100644 SetLastError(0); if(hTheme) { if((tp = MSSTYLES_FindMetric(TMT_BOOL, iBoolID))) { -@@ -74,6 +79,10 @@ COLORREF WINAPI GetThemeSysColor(HTHEME hTheme, int iColorID) +@@ -76,6 +81,10 @@ COLORREF WINAPI GetThemeSysColor(HTHEME hTheme, int iColorID) PTHEME_PROPERTY tp; TRACE("(%p, %d)\n", hTheme, iColorID); @@ -3777,7 +3739,7 @@ index 2d5a09d0256..77eebc780a1 100644 SetLastError(0); if(hTheme) { if((tp = MSSTYLES_FindMetric(TMT_COLOR, iColorID))) { -@@ -106,6 +115,10 @@ HRESULT WINAPI GetThemeSysFont(HTHEME hTheme, int iFontID, LOGFONTW *plf) +@@ -108,6 +117,10 @@ HRESULT WINAPI GetThemeSysFont(HTHEME hTheme, int iFontID, LOGFONTW *plf) PTHEME_PROPERTY tp; TRACE("(%p, %d)\n", hTheme, iFontID); @@ -3788,7 +3750,7 @@ index 2d5a09d0256..77eebc780a1 100644 if(hTheme) { if((tp = MSSTYLES_FindMetric(TMT_FONT, iFontID))) { HDC hdc = GetDC(NULL); -@@ -149,6 +162,10 @@ HRESULT WINAPI GetThemeSysInt(HTHEME hTheme, int iIntID, int *piValue) +@@ -151,6 +164,10 @@ HRESULT WINAPI GetThemeSysInt(HTHEME hTheme, int iIntID, int *piValue) TRACE("(%p, %d)\n", hTheme, iIntID); if(!hTheme) return E_HANDLE; @@ -3799,7 +3761,7 @@ index 2d5a09d0256..77eebc780a1 100644 if(iIntID < TMT_FIRSTINT || iIntID > TMT_LASTINT) { WARN("Unknown IntID: %d\n", iIntID); return STG_E_INVALIDPARAMETER; -@@ -178,6 +195,9 @@ int WINAPI GetThemeSysSize(HTHEME hTheme, int iSizeID) +@@ -180,6 +197,9 @@ int WINAPI GetThemeSysSize(HTHEME hTheme, int iSizeID) PTHEME_PROPERTY tp; int i, id = -1; @@ -3809,7 +3771,7 @@ index 2d5a09d0256..77eebc780a1 100644 if(hTheme) { for(i=0; iiPrimitiveType) { -@@ -286,6 +323,9 @@ HRESULT WINAPI GetThemePropertyOrigin(HTHEME hTheme, int iPartId, int iStateId, +@@ -288,6 +325,9 @@ HRESULT WINAPI GetThemePropertyOrigin(HTHEME hTheme, int iPartId, int iStateId, if(!hTheme) return E_HANDLE; @@ -3963,10 +3925,10 @@ index 93a72ab9189..2a56466dfc9 100644 *pOrigin = PO_NOTFOUND; return S_OK; diff --git a/dlls/uxtheme/system.c b/dlls/uxtheme/system.c -index 6e9c0f22369..a5e3ead0986 100644 +index c898ad32e..2f7d40fc0 100644 --- a/dlls/uxtheme/system.c +++ b/dlls/uxtheme/system.c -@@ -556,6 +556,10 @@ BOOL WINAPI IsAppThemed(void) +@@ -558,6 +558,10 @@ BOOL WINAPI IsAppThemed(void) BOOL WINAPI IsThemeActive(void) { TRACE("\n"); @@ -3977,7 +3939,7 @@ index 6e9c0f22369..a5e3ead0986 100644 SetLastError(ERROR_SUCCESS); return bThemeActive; } -@@ -585,6 +589,9 @@ HRESULT WINAPI EnableTheming(BOOL fEnable) +@@ -587,6 +591,9 @@ HRESULT WINAPI EnableTheming(BOOL fEnable) TRACE("(%d)\n", fEnable); @@ -3987,7 +3949,7 @@ index 6e9c0f22369..a5e3ead0986 100644 if(fEnable != bThemeActive) { if(fEnable) UXTHEME_BackupSystemMetrics(); -@@ -657,7 +664,9 @@ HTHEME WINAPI OpenThemeDataEx(HWND hwnd, LPCWSTR pszClassList, DWORD flags) +@@ -659,7 +666,9 @@ HTHEME WINAPI OpenThemeDataEx(HWND hwnd, LPCWSTR pszClassList, DWORD flags) if(flags) FIXME("unhandled flags: %x\n", flags); @@ -3998,7 +3960,7 @@ index 6e9c0f22369..a5e3ead0986 100644 { pszAppName = UXTHEME_GetWindowProperty(hwnd, atSubAppName, szAppBuff, ARRAY_SIZE(szAppBuff)); /* If SetWindowTheme was used on the window, that overrides the class list passed to this function */ -@@ -668,6 +677,7 @@ HTHEME WINAPI OpenThemeDataEx(HWND hwnd, LPCWSTR pszClassList, DWORD flags) +@@ -670,6 +679,7 @@ HTHEME WINAPI OpenThemeDataEx(HWND hwnd, LPCWSTR pszClassList, DWORD flags) if (pszUseClassList) hTheme = MSSTYLES_OpenThemeClass(pszAppName, pszUseClassList); } @@ -4006,7 +3968,7 @@ index 6e9c0f22369..a5e3ead0986 100644 if(IsWindow(hwnd)) SetPropW(hwnd, (LPCWSTR)MAKEINTATOM(atWindowTheme), hTheme); TRACE(" = %p\n", hTheme); -@@ -710,6 +720,10 @@ HRESULT WINAPI SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName, +@@ -712,6 +722,10 @@ HRESULT WINAPI SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName, HRESULT hr; TRACE("(%p,%s,%s)\n", hwnd, debugstr_w(pszSubAppName), debugstr_w(pszSubIdList)); @@ -4017,7 +3979,7 @@ index 6e9c0f22369..a5e3ead0986 100644 hr = UXTHEME_SetWindowProperty(hwnd, atSubAppName, pszSubAppName); if(SUCCEEDED(hr)) hr = UXTHEME_SetWindowProperty(hwnd, atSubIdList, pszSubIdList); -@@ -735,6 +749,10 @@ HRESULT WINAPI GetCurrentThemeName(LPWSTR pszThemeFileName, int dwMaxNameChars, +@@ -737,6 +751,10 @@ HRESULT WINAPI GetCurrentThemeName(LPWSTR pszThemeFileName, int dwMaxNameChars, LPWSTR pszColorBuff, int cchMaxColorChars, LPWSTR pszSizeBuff, int cchMaxSizeChars) { @@ -4028,7 +3990,7 @@ index 6e9c0f22369..a5e3ead0986 100644 if(!bThemeActive) return E_PROP_ID_UNSUPPORTED; if(pszThemeFileName) lstrcpynW(pszThemeFileName, szCurrentTheme, dwMaxNameChars); -@@ -748,6 +766,8 @@ HRESULT WINAPI GetCurrentThemeName(LPWSTR pszThemeFileName, int dwMaxNameChars, +@@ -750,6 +768,8 @@ HRESULT WINAPI GetCurrentThemeName(LPWSTR pszThemeFileName, int dwMaxNameChars, */ DWORD WINAPI GetThemeAppProperties(void) { @@ -4037,7 +3999,7 @@ index 6e9c0f22369..a5e3ead0986 100644 return dwThemeAppProperties; } -@@ -757,6 +777,10 @@ DWORD WINAPI GetThemeAppProperties(void) +@@ -759,6 +779,10 @@ DWORD WINAPI GetThemeAppProperties(void) void WINAPI SetThemeAppProperties(DWORD dwFlags) { TRACE("(0x%08x)\n", dwFlags); @@ -4048,7 +4010,7 @@ index 6e9c0f22369..a5e3ead0986 100644 dwThemeAppProperties = dwFlags; } -@@ -768,6 +792,10 @@ HRESULT WINAPI CloseThemeData(HTHEME hTheme) +@@ -770,6 +794,10 @@ HRESULT WINAPI CloseThemeData(HTHEME hTheme) TRACE("(%p)\n", hTheme); if(!hTheme || hTheme == INVALID_HANDLE_VALUE) return E_HANDLE; @@ -4059,7 +4021,7 @@ index 6e9c0f22369..a5e3ead0986 100644 return MSSTYLES_CloseThemeClass(hTheme); } -@@ -795,6 +823,10 @@ BOOL WINAPI IsThemePartDefined(HTHEME hTheme, int iPartId, int iStateId) +@@ -797,6 +825,10 @@ BOOL WINAPI IsThemePartDefined(HTHEME hTheme, int iPartId, int iStateId) SetLastError(E_HANDLE); return FALSE; } @@ -4071,7 +4033,7 @@ index 6e9c0f22369..a5e3ead0986 100644 return TRUE; return FALSE; diff --git a/dlls/uxtheme/uxthemedll.h b/dlls/uxtheme/uxthemedll.h -index fee152c9c34..cdc5958d7c7 100644 +index fee152c9c..cdc5958d7 100644 --- a/dlls/uxtheme/uxthemedll.h +++ b/dlls/uxtheme/uxthemedll.h @@ -21,6 +21,14 @@ @@ -4162,7 +4124,7 @@ index fee152c9c34..cdc5958d7c7 100644 /* "Cheap" binary alpha blending - but possibly faster */ diff --git a/dlls/uxtheme/uxthemegtk.h b/dlls/uxtheme/uxthemegtk.h new file mode 100644 -index 00000000000..87cd0456f8d +index 000000000..87cd0456f --- /dev/null +++ b/dlls/uxtheme/uxthemegtk.h @@ -0,0 +1,129 @@ @@ -4296,5 +4258,5 @@ index 00000000000..87cd0456f8d + +#endif /* UXTHEMEGTK_H */ -- -2.20.1 +2.23.0 diff --git a/patches/uxtheme-GTK_Theming/0002-makefiles-Only-apply-non-include-path-EXTRAINCL-flag.patch b/patches/uxtheme-GTK_Theming/0002-makefiles-Only-apply-non-include-path-EXTRAINCL-flag.patch new file mode 100644 index 00000000..2b55424d --- /dev/null +++ b/patches/uxtheme-GTK_Theming/0002-makefiles-Only-apply-non-include-path-EXTRAINCL-flag.patch @@ -0,0 +1,51 @@ +From 26cdc4c8be3a1377439b5fe937d38dc16cbb4e90 Mon Sep 17 00:00:00 2001 +From: Zebediah Figura +Date: Wed, 18 Sep 2019 19:16:08 -0500 +Subject: [PATCH 2/2] makefiles: Only apply non-include-path EXTRAINCL flags to + C sources. + +On my system pkg-config generates '-pthread' for gtk-3, which trips up wrc otherwise. +--- + tools/makedep.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/tools/makedep.c b/tools/makedep.c +index e37bd8d63..ad8de5590 100644 +--- a/tools/makedep.c ++++ b/tools/makedep.c +@@ -172,6 +172,7 @@ struct makefile + struct strarray include_paths; + struct strarray include_args; + struct strarray define_args; ++ struct strarray extraincl_args; + struct strarray programs; + struct strarray scripts; + struct strarray imports; +@@ -3036,6 +3037,7 @@ static void output_source_default( struct makefile *make, struct incl_file *sour + if (source->use_msvcrt) output_filenames( msvcrt_flags ); + } + output_filenames( extra_cflags ); ++ output_filenames( make->extraincl_args ); + output_filenames( cpp_flags ); + output_filename( "$(CFLAGS)" ); + output( "\n" ); +@@ -4181,6 +4183,7 @@ static void load_sources( struct makefile *make ) + make->include_paths = empty_strarray; + make->include_args = empty_strarray; + make->define_args = empty_strarray; ++ make->extraincl_args = empty_strarray; + strarray_add( &make->define_args, "-D__WINESRC__" ); + + value = get_expanded_make_var_array( make, "EXTRAINCL" ); +@@ -4188,7 +4191,7 @@ static void load_sources( struct makefile *make ) + if (!strncmp( value.str[i], "-I", 2 )) + strarray_add_uniq( &make->include_paths, value.str[i] + 2 ); + else +- strarray_add_uniq( &make->define_args, value.str[i] ); ++ strarray_add_uniq( &make->extraincl_args, value.str[i] ); + strarray_addall( &make->define_args, get_expanded_make_var_array( make, "EXTRADEFS" )); + + strarray_add( &make->include_args, strmake( "-I%s", obj_dir_path( make, "" ))); +-- +2.23.0 + diff --git a/patches/uxtheme-GTK_Theming/0006-uxtheme-Dont-build-with-msvcrt.patch b/patches/uxtheme-GTK_Theming/0006-uxtheme-Dont-build-with-msvcrt.patch deleted file mode 100644 index 9bd60788..00000000 --- a/patches/uxtheme-GTK_Theming/0006-uxtheme-Dont-build-with-msvcrt.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 04c452501e9c4e25d2ad2abf704bb30be5674719 Mon Sep 17 00:00:00 2001 -From: Alistair Leslie-Hughes -Date: Wed, 26 Jun 2019 10:38:23 +1000 -Subject: [PATCH] uxtheme: Dont build with msvcrt - ---- - dlls/uxtheme/Makefile.in | 2 -- - dlls/uxtheme/msstyles.c | 17 ++++++++--------- - 2 files changed, 8 insertions(+), 11 deletions(-) - -diff --git a/dlls/uxtheme/Makefile.in b/dlls/uxtheme/Makefile.in -index d0409300230..e09f891ee48 100644 ---- a/dlls/uxtheme/Makefile.in -+++ b/dlls/uxtheme/Makefile.in -@@ -4,8 +4,6 @@ IMPORTS = user32 gdi32 advapi32 - DELAYIMPORTS = msimg32 - EXTRAINCL = $(GTK3_CFLAGS) - --EXTRADLLFLAGS = -mno-cygwin -- - C_SRCS = \ - buffer.c \ - draw.c \ -diff --git a/dlls/uxtheme/msstyles.c b/dlls/uxtheme/msstyles.c -index 5030e52a597..bc898f13453 100644 ---- a/dlls/uxtheme/msstyles.c -+++ b/dlls/uxtheme/msstyles.c -@@ -17,7 +17,6 @@ - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - */ -- - #include - #include - -@@ -31,7 +30,7 @@ - #include "tmschema.h" - - #include "msstyles.h" -- -+#include "wine/unicode.h" - #include "wine/exception.h" - #include "wine/debug.h" - #include "wine/heap.h" -@@ -353,7 +352,7 @@ static BOOL MSSTYLES_ParseIniSectionName(LPCWSTR lpSection, DWORD dwLen, LPWSTR - *iStateId = 0; - comp = sec; - /* Get the application name */ -- tmp = wcschr(comp, ':'); -+ tmp = strchrW(comp, ':'); - if(tmp) { - *tmp++ = 0; - tmp++; -@@ -361,19 +360,19 @@ static BOOL MSSTYLES_ParseIniSectionName(LPCWSTR lpSection, DWORD dwLen, LPWSTR - comp = tmp; - } - -- tmp = wcschr(comp, '.'); -+ tmp = strchrW(comp, '.'); - if(tmp) { - *tmp++ = 0; - lstrcpynW(szClassName, comp, MAX_THEME_CLASS_NAME); - comp = tmp; - /* now get the part & state */ -- tmp = wcschr(comp, '('); -+ tmp = strchrW(comp, '('); - if(tmp) { - *tmp++ = 0; - lstrcpynW(part, comp, ARRAY_SIZE(part)); - comp = tmp; - /* now get the state */ -- tmp = wcschr(comp, ')'); -+ tmp = strchrW(comp, ')'); - if (!tmp) - return FALSE; - *tmp = 0; -@@ -384,13 +383,13 @@ static BOOL MSSTYLES_ParseIniSectionName(LPCWSTR lpSection, DWORD dwLen, LPWSTR - } - } - else { -- tmp = wcschr(comp, '('); -+ tmp = strchrW(comp, '('); - if(tmp) { - *tmp++ = 0; - lstrcpynW(szClassName, comp, MAX_THEME_CLASS_NAME); - comp = tmp; - /* now get the state */ -- tmp = wcschr(comp, ')'); -+ tmp = strchrW(comp, ')'); - if (!tmp) - return FALSE; - *tmp = 0; -@@ -1014,7 +1013,7 @@ PTHEME_CLASS MSSTYLES_OpenThemeClass(LPCWSTR pszAppName, LPCWSTR pszClassList) - } - - start = pszClassList; -- while((end = wcschr(start, ';'))) { -+ while((end = strchrW(start, ';'))) { - len = end-start; - lstrcpynW(szClassName, start, min(len+1, ARRAY_SIZE(szClassName))); - start = end+1; --- -2.17.1 -