From ab14a7dba094de5c7d1fa71f330fa73acead310b Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Sat, 24 Jan 2015 05:15:18 +0100 Subject: [PATCH] Added patch to fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED. --- README.md | 3 +- debian/changelog | 1 + patches/patchinstall.sh | 19 ++++++++++ ...ling-of-window-attributes-for-WS_EX_.patch | 36 +++++++++++++++++++ patches/winex11-Window_Style/definition | 1 + 5 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 patches/winex11-Window_Style/0001-winex11-Fix-handling-of-window-attributes-for-WS_EX_.patch create mode 100644 patches/winex11-Window_Style/definition diff --git a/README.md b/README.md index 9a2b5b32..a52a1711 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [19]:** +**Bugfixes and features included in the next upcoming release [20]:** * Add stub for KeWaitForMultipleObjects * Add stubs for D3DXCreateAnimationController interface @@ -47,6 +47,7 @@ Included bug fixes and improvements * Do not append duplicate NULL characters when importing keys with regedit ([Wine Bug #37575](https://bugs.winehq.org/show_bug.cgi?id=37575)) * Fix crash in Space Rangers2 caused by missing DXTn support ([Wine Bug #24983](https://bugs.winehq.org/show_bug.cgi?id=24983)) * Fix cursor clip regression / broken raw input in multiple games ([Wine Bug #33479](https://bugs.winehq.org/show_bug.cgi?id=33479)) +* Fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED ([Wine Bug #37876](https://bugs.winehq.org/show_bug.cgi?id=37876)) * Fix init of LONGLONG variable with a negative value in TGA decoder * Fix wrong colors in Wolfenstein (2009) ([Wine Bug #34692](https://bugs.winehq.org/show_bug.cgi?id=34692)) * Graphical issues in Inquisitor ([Wine Bug #32490](https://bugs.winehq.org/show_bug.cgi?id=32490)) diff --git a/debian/changelog b/debian/changelog index 031fa411..082e8874 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,7 @@ wine-staging (1.7.35) UNRELEASED; urgency=low * Added patch to implement semi-stub for IDirectPlayVoiceClient::GetCompressionTypes. * Added patch to fix cursor clip regression / broken raw input in multiple games. * Added patches to implement ntoskrnl driver testing framework. + * Added patch to fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED. * Removed patch to fix RandR on some broken nVidia systems (accepted upstream). * Removed patch to set last error on success in WSARecv (accepted upstream). * Removed patch to fix handling of subdirectory in FtpFindFirstFile (accepted upstream). diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 154f4111..c921ae12 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -181,6 +181,7 @@ patch_enable_all () enable_winex11_CandidateWindowPos="$1" enable_winex11_Clipboard_HTML="$1" enable_winex11_Window_Groups="$1" + enable_winex11_Window_Style="$1" enable_winex11_XEMBED="$1" enable_winex11_wglShareLists="$1" enable_wininet_encoding="$1" @@ -571,6 +572,9 @@ patch_enable () winex11-Window_Groups) enable_winex11_Window_Groups="$2" ;; + winex11-Window_Style) + enable_winex11_Window_Style="$2" + ;; winex11-XEMBED) enable_winex11_XEMBED="$2" ;; @@ -3512,6 +3516,21 @@ if test "$enable_winex11_Window_Groups" -eq 1; then ) >> "$patchlist" fi +# Patchset winex11-Window_Style +# | +# | This patchset fixes the following Wine bugs: +# | * [#37876] Fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED +# | +# | Modified files: +# | * dlls/winex11.drv/window.c +# | +if test "$enable_winex11_Window_Style" -eq 1; then + patch_apply winex11-Window_Style/0001-winex11-Fix-handling-of-window-attributes-for-WS_EX_.patch + ( + echo '+ { "Dmitry Timoshkov", "winex11: Fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED.", 1 },'; + ) >> "$patchlist" +fi + # Patchset winex11-XEMBED # | # | Modified files: 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 new file mode 100644 index 00000000..0a74a9c0 --- /dev/null +++ b/patches/winex11-Window_Style/0001-winex11-Fix-handling-of-window-attributes-for-WS_EX_.patch @@ -0,0 +1,36 @@ +From 97b7b28a83e4b6ae0bf7e1d66d8d22ac71cedf7f Mon Sep 17 00:00:00 2001 +From: Dmitry Timoshkov +Date: Sat, 24 Jan 2015 05:12:49 +0100 +Subject: 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(-) + +diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c +index 06e2294..7c4a829 100644 +--- a/dlls/winex11.drv/window.c ++++ b/dlls/winex11.drv/window.c +@@ -260,7 +260,7 @@ static unsigned long get_mwm_decorations( struct x11drv_win_data *data, + if (data->shaped) return 0; + + if (ex_style & WS_EX_TOOLWINDOW) return 0; +- if (ex_style & WS_EX_LAYERED) return 0; ++ if ((ex_style & (WS_EX_LAYERED | WS_EX_COMPOSITED)) == WS_EX_LAYERED) return 0; + + if ((style & WS_CAPTION) == WS_CAPTION) + { +@@ -2320,7 +2320,8 @@ void CDECL X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags + BOOL needs_map = TRUE; + + /* layered windows are mapped only once their attributes are set */ +- if (GetWindowLongW( hwnd, GWL_EXSTYLE ) & WS_EX_LAYERED) needs_map = data->layered; ++ if ((GetWindowLongW( hwnd, GWL_EXSTYLE ) & (WS_EX_LAYERED | WS_EX_COMPOSITED)) == WS_EX_LAYERED) ++ needs_map = data->layered; + release_win_data( data ); + if (needs_icon) fetch_icon_data( hwnd, 0, 0 ); + if (needs_map) map_window( hwnd, new_style ); +-- +2.2.1 + diff --git a/patches/winex11-Window_Style/definition b/patches/winex11-Window_Style/definition new file mode 100644 index 00000000..e846f4fd --- /dev/null +++ b/patches/winex11-Window_Style/definition @@ -0,0 +1 @@ +Fixes: [37876] Fix handling of window attributes for WS_EX_LAYERED | WS_EX_COMPOSITED