From e93cad00c3c9da6615bce99e0fdcf7a7a84a6560 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Mon, 18 Aug 2014 00:56:24 +0200 Subject: [PATCH] Add patch to fix issues with dragimage in ImageLists. --- README.md | 3 +- patches/Makefile | 19 +++++++++ ...ue-that-dragimage-in-ImageList-only-.patch | 42 +++++++++++++++++++ patches/comctl32-ImageList/definition | 4 ++ 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 patches/comctl32-ImageList/0001-comctl32-Fix-issue-that-dragimage-in-ImageList-only-.patch create mode 100644 patches/comctl32-ImageList/definition diff --git a/README.md b/README.md index 5d5a87b0..637ffe95 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,10 @@ which are not present in regular wine, and always report such issues to us Included bugfixes and improvements ---------------------------------- -**Bugfixes and features included in the next upcoming release [9]:** +**Bugfixes and features included in the next upcoming release [10]:** * Fix ITERATE_MoveFiles when no source- and destname is specified ([Wine Bug #10085](http://bugs.winehq.org/show_bug.cgi?id=10085 "Adobe Bridge CS2 complains that it can't start due to licensing restrictions (affects photoshop)")) +* Fix issue with invisible dragimages in ImageList ([Wine Bug #36761](http://bugs.winehq.org/show_bug.cgi?id=36761 "Imagelist invisible dragimage")) * Gothic 2 demo expects an error when opening a terminating process ([Wine Bug #37087](http://bugs.winehq.org/show_bug.cgi?id=37087 "Gothic 2 english demo fails with 'Conflict: a hook process was found. Please deactivate all Antivirus and Anti-Trojan programs and debuggers.'")) * Multiple applications need BCryptGetFipsAlgorithmMode ([Wine Bug #32194](http://bugs.winehq.org/show_bug.cgi?id=32194 "Multiple games and applications need bcrypt.dll.BCryptGetFipsAlgorithmMode (Chess Position Trainer, Terraria, .NET System.Security.Cryptography)")) * Other Pipelight-specific enhancements diff --git a/patches/Makefile b/patches/Makefile index 3d3116b9..369981a3 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -12,6 +12,7 @@ PATCHLIST := \ Pipelight.ok \ atl-IOCS_Property.ok \ bcrypt-BCryptGetFipsAlgorithmMode.ok \ + comctl32-ImageList.ok \ comctl32-LoadIconMetric.ok \ dsound-Fast_Mixer.ok \ dwmapi-Invalidate_Thumbnail.ok \ @@ -156,6 +157,24 @@ bcrypt-BCryptGetFipsAlgorithmMode.ok: echo '+ { "bcrypt-BCryptGetFipsAlgorithmMode", "Michael Müller", "Add semi-stub for BCryptGetFipsAlgorithmMode." },'; \ ) > bcrypt-BCryptGetFipsAlgorithmMode.ok +# Patchset comctl32-ImageList +# | +# | Included patches: +# | * Fix issue that dragimage in ImageList only works for first four elements. [by Sebastian Lackner] +# | +# | This patchset fixes the following Wine bugs: +# | * [#36761] Fix issue with invisible dragimages in ImageList +# | +# | Modified files: +# | * dlls/comctl32/imagelist.c +# | +.INTERMEDIATE: comctl32-ImageList.ok +comctl32-ImageList.ok: + $(call APPLY_FILE,comctl32-ImageList/0001-comctl32-Fix-issue-that-dragimage-in-ImageList-only-.patch) + @( \ + echo '+ { "comctl32-ImageList", "Sebastian Lackner", "Fix issue that dragimage in ImageList only works for first four elements." },'; \ + ) > comctl32-ImageList.ok + # Patchset comctl32-LoadIconMetric # | # | Included patches: diff --git a/patches/comctl32-ImageList/0001-comctl32-Fix-issue-that-dragimage-in-ImageList-only-.patch b/patches/comctl32-ImageList/0001-comctl32-Fix-issue-that-dragimage-in-ImageList-only-.patch new file mode 100644 index 00000000..cb7de7e2 --- /dev/null +++ b/patches/comctl32-ImageList/0001-comctl32-Fix-issue-that-dragimage-in-ImageList-only-.patch @@ -0,0 +1,42 @@ +From a79d771501ec85da65e27234972807364e1b29db Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Mon, 18 Aug 2014 00:50:41 +0200 +Subject: comctl32: Fix issue that dragimage in ImageList only works for first + four elements. + +Patch by ocean04 [at] suomi24 [dot] fi, provided at Wine bug #36761. +--- + dlls/comctl32/imagelist.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/dlls/comctl32/imagelist.c b/dlls/comctl32/imagelist.c +index 645068d..f15a0a9 100644 +--- a/dlls/comctl32/imagelist.c ++++ b/dlls/comctl32/imagelist.c +@@ -599,6 +599,7 @@ ImageList_BeginDrag (HIMAGELIST himlTrack, INT iTrack, + INT dxHotspot, INT dyHotspot) + { + INT cx, cy; ++ POINT ptSrc; + + TRACE("(himlTrack=%p iTrack=%d dx=%d dy=%d)\n", himlTrack, iTrack, + dxHotspot, dyHotspot); +@@ -620,12 +621,13 @@ ImageList_BeginDrag (HIMAGELIST himlTrack, INT iTrack, + + InternalDrag.dxHotspot = dxHotspot; + InternalDrag.dyHotspot = dyHotspot; ++ imagelist_point_from_index( himlTrack, iTrack, &ptSrc ); + + /* copy image */ +- BitBlt (InternalDrag.himl->hdcImage, 0, 0, cx, cy, himlTrack->hdcImage, iTrack * cx, 0, SRCCOPY); ++ BitBlt (InternalDrag.himl->hdcImage, 0, 0, cx, cy, himlTrack->hdcImage, ptSrc.x, ptSrc.y, SRCCOPY); + + /* copy mask */ +- BitBlt (InternalDrag.himl->hdcMask, 0, 0, cx, cy, himlTrack->hdcMask, iTrack * cx, 0, SRCCOPY); ++ BitBlt (InternalDrag.himl->hdcMask, 0, 0, cx, cy, himlTrack->hdcMask, ptSrc.x, ptSrc.y, SRCCOPY); + + InternalDrag.himl->cCurImage = 1; + +-- +1.7.9.5 + diff --git a/patches/comctl32-ImageList/definition b/patches/comctl32-ImageList/definition new file mode 100644 index 00000000..b5e6f19e --- /dev/null +++ b/patches/comctl32-ImageList/definition @@ -0,0 +1,4 @@ +Author: Sebastian Lackner +Subject: Fix issue that dragimage in ImageList only works for first four elements. +Revision: 1 +Fixes: [36761] Fix issue with invisible dragimages in ImageList