diff --git a/patches/shell32-SFGAO_HASSUBFOLDER/0002-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-normal-.patch b/patches/shell32-SFGAO_HASSUBFOLDER/0002-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-normal-.patch deleted file mode 100644 index 6122ef7c..00000000 --- a/patches/shell32-SFGAO_HASSUBFOLDER/0002-shell32-Set-SFGAO_HASSUBFOLDER-correctly-for-normal-.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 4b890399fb10c9ed8cf4d17db4373a170b3f0b66 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sat, 15 Aug 2015 21:12:00 +0200 -Subject: [PATCH] shell32: Set SFGAO_HASSUBFOLDER correctly for normal - shellfolders. - ---- - dlls/shell32/shlfolder.c | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c -index f288b7f7ab1..18499190fee 100644 ---- a/dlls/shell32/shlfolder.c -+++ b/dlls/shell32/shlfolder.c -@@ -450,7 +450,23 @@ HRESULT SHELL32_GetItemAttributes (IShellFolder2 *psf, LPCITEMIDLIST pidl, LPDWO - SFGAO_CANRENAME | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANCOPY; - - if (file_attr & FILE_ATTRIBUTE_DIRECTORY) -- *pdwAttributes |= (SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_FILESYSANCESTOR | SFGAO_STORAGEANCESTOR | SFGAO_STORAGE); -+ { -+ IEnumIDList *enum_list; -+ IShellFolder *child; -+ -+ *pdwAttributes |= (SFGAO_FOLDER | SFGAO_FILESYSANCESTOR | SFGAO_STORAGEANCESTOR | SFGAO_STORAGE); -+ -+ if (SUCCEEDED(IShellFolder2_BindToObject(psf, pidl, NULL, &IID_IShellFolder, (void **)&child))) -+ { -+ if (IShellFolder_EnumObjects(child, NULL, SHCONTF_FOLDERS|SHCONTF_INCLUDEHIDDEN, &enum_list) == S_OK) -+ { -+ if (IEnumIDList_Skip(enum_list, 1) != S_OK) -+ *pdwAttributes &= ~SFGAO_HASSUBFOLDER; -+ IEnumIDList_Release(enum_list); -+ } -+ IShellFolder_Release(child); -+ } -+ } - else - { - *pdwAttributes &= ~(SFGAO_FOLDER | SFGAO_HASSUBFOLDER | SFGAO_FILESYSANCESTOR | SFGAO_STORAGEANCESTOR | SFGAO_STORAGE); --- -2.33.0 - diff --git a/patches/shell32-SFGAO_HASSUBFOLDER/definition b/patches/shell32-SFGAO_HASSUBFOLDER/definition deleted file mode 100644 index 13807265..00000000 --- a/patches/shell32-SFGAO_HASSUBFOLDER/definition +++ /dev/null @@ -1 +0,0 @@ -Fixes: [24851] Only set SFGAO_HASSUBFOLDER when there are really subfolders diff --git a/patches/winex11-Window_Style/0001-winex11-Fix-handling-of-window-attributes-for-WS_EX_.patch b/patches/winex11-Window_Style/0001-winex11-Fix-handling-of-window-attributes-for-WS_EX_.patch index 032e6a2b..43e0848a 100644 --- a/patches/winex11-Window_Style/0001-winex11-Fix-handling-of-window-attributes-for-WS_EX_.patch +++ b/patches/winex11-Window_Style/0001-winex11-Fix-handling-of-window-attributes-for-WS_EX_.patch @@ -1,18 +1,18 @@ -From c30eb624c99b01d7b6e1c3e21cf40869cd3075a8 Mon Sep 17 00:00:00 2001 +From b7e91a68996298890b45a006a3888b18f23d0708 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Sat, 24 Jan 2015 05:12:49 +0100 Subject: [PATCH] winex11: Fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED. --- - dlls/winex11.drv/window.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) + dlls/winex11.drv/window.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c -index a733d566d4f..4099d2b9879 100644 +index e9edc0022c8..f3cbb858798 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c -@@ -448,7 +448,7 @@ static unsigned long get_mwm_decorations_for_style( DWORD style, DWORD ex_style +@@ -457,7 +457,7 @@ static unsigned long get_mwm_decorations_for_style( DWORD style, DWORD ex_style unsigned long ret = 0; if (ex_style & WS_EX_TOOLWINDOW) return 0; @@ -21,17 +21,15 @@ index a733d566d4f..4099d2b9879 100644 if ((style & WS_CAPTION) == WS_CAPTION) { -@@ -3080,8 +3080,9 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN - BOOL needs_map = TRUE; +@@ -3116,7 +3116,7 @@ void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, HWND owner_hint, UIN + debugstr_window_rects(new_rects), new_style, swp_flags ); + + /* layered windows are mapped only once their attributes are set */ +- if (ex_style & WS_EX_LAYERED && !data->layered && !IsRectEmpty( &new_rects->window )) new_style &= ~WS_VISIBLE; ++ if ((ex_style & (WS_EX_LAYERED | WS_EX_COMPOSITED)) == WS_EX_LAYERED && !data->layered && !IsRectEmpty( &new_rects->window )) new_style &= ~WS_VISIBLE; + + XFlush( gdi_display ); /* make sure painting is done before we move the window */ - /* layered windows are mapped only once their attributes are set */ -- if (NtUserGetWindowLongW( hwnd, GWL_EXSTYLE ) & WS_EX_LAYERED) -+ if ((NtUserGetWindowLongW( hwnd, GWL_EXSTYLE ) & (WS_EX_LAYERED | WS_EX_COMPOSITED)) == WS_EX_LAYERED) - needs_map = data->layered || IsRectEmpty( &new_rects->window ); -+ - release_win_data( data ); - if (needs_icon) fetch_icon_data( hwnd, 0, 0 ); - if (needs_map) map_window( hwnd, new_style, activate ); -- -2.47.2 +2.51.0 diff --git a/staging/upstream-commit b/staging/upstream-commit index ae476728..d4d4503b 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -2827471c57299793d8e0868679184f8d762a5309 +486f33ee64121d0331fb3e943791ec42bd98ef51