https://bugs.winehq.org/show_bug.cgi?id=37113
Bug ID: 37113 Summary: Cannot move (drag n drop) objects in Illustrator CS6 using the selection tool (V) Product: Wine Version: 1.7.22 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: info@translucide.ca
The selection tool in Illustrator CS6 Tryout version allows one to move objects by drag n dropping those.
Expected behavior : Dragging and dropping an object should make that object retain its position when "dropped".
Actual behavior : Dropping the object results in the object returning to its original position before dragging it. Drag n drop does not work with selection tool (V, black arrow icon) but does work with the Free Transform Tool (E).
This is a regression : in Wine 1.5.27 that was working. In wine 1.7.22 it is not working anymore.
https://bugs.winehq.org/show_bug.cgi?id=37113
--- Comment #1 from graben info@translucide.ca --- When run into console, the following lines appear when a drag n drop operation is made (and failed under wine 1.7.22) :
fixme:shell:IDropTargetHelper_fnDragOver (0x112f51e8)->(0x32e394 0x00000000) fixme:shell:IDropTargetHelper_fnDragOver (0x112f51e8)->(0x32e394 0x00000000) fixme:shell:IDropTargetHelper_fnDragOver (0x112f51e8)->(0x32e394 0x00000000) fixme:shell:IDropTargetHelper_fnDrop (0x112f51e8)->(0x1aab19f0 0x32e394 0x00000000)
https://bugs.winehq.org/show_bug.cgi?id=37113
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
--- Comment #2 from Austin English austinenglish@gmail.com --- Please run a regression test: http://wiki.winehq.org/RegressionTesting
https://bugs.winehq.org/show_bug.cgi?id=37113
Guillaume Charifi guillaume.charifi@sfr.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |guillaume.charifi@sfr.fr
https://bugs.winehq.org/show_bug.cgi?id=37113
--- Comment #3 from graben info@translucide.ca --- Bug is not present in 1.7.5-1 precompiled packages for fedora.
I havent got the time to check how to do the bisect process yet...
https://bugs.winehq.org/show_bug.cgi?id=37113
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=37113
--- Comment #4 from graben info@translucide.ca --- Bug still present in wine 64bits v1.7.30
https://bugs.winehq.org/show_bug.cgi?id=37113
--- Comment #5 from graben info@translucide.ca --- Finally had time to bisect and found that this is the commit creating this bug :
bc2c6d39a69201ab64a03822ddd44f904853e8c7 is the first bad commit commit bc2c6d39a69201ab64a03822ddd44f904853e8c7 Author: Piotr Caban piotr@codeweavers.com Date: Sat Mar 1 14:46:20 2014 +0100
ole32: Change DoDragDrop return value on IDropTarget::Drop call.
:040000 040000 2943a854cae9b87ef273870bba2d5f3999b2a5b3 6bef57b96dec73c07ea12698c4a73c2d0a475a3e M dlls
https://bugs.winehq.org/show_bug.cgi?id=37113
--- Comment #6 from graben info@translucide.ca --- I did a bit of debugging and it does not seem to me that the patch in question is the problem.
First, in the latest git, the patch is reversed and trackerInfo->returnValue = IDropTarget_Drop(...) is back again as it was before.
But the problem persist in the latest git.
I can confirm that the function IDropTarget_Drop(...) is called in the case DRAGDROP_S_DROP clause in dlls/ole2.c around line 2411
I am not familiar with wine codebase nor windows internals so I don't know what is the problem here, but the drag n drop operation gets cancelled somehow and DRAGDROP_S_CANCEL case part in the same file around line 2433 is not executed.
When testing here is the values for the meaningful variables I have observed :
trackerInfo->returnValue = DRAGDROP_S_DROP (0x40100) trackerInfo->pdwEffect = 0x02, which equates to move effect
I have not found where IDropTarget_Drop is defined in the wine codebase, the search for it did not return the function definition... I suspect it might have something to do with it, but then again I'm not familiar with wine nor Windows internals and I might be missing something obvious here...
https://bugs.winehq.org/show_bug.cgi?id=37113
--- Comment #7 from graben info@translucide.ca --- I think I was too tired yesterday, after a couple of coffees this morning, I found the fix and its dead simple and was obvious looking back at the bisect result. Just forget my last comment !
In dlls/ole2.c, just changing around line 2408 :
case DRAGDROP_S_DROP: if (*trackerInfo->pdwEffect != DROPEFFECT_NONE) trackerInfo->returnValue = IDropTarget_Drop(trackerInfo->curDragTarget,...
TO :
case DRAGDROP_S_DROP: if (*trackerInfo->pdwEffect != DROPEFFECT_NONE) IDropTarget_Drop(trackerInfo->curDragTarget,...
In short, not assigning IDropTarget return value to trackerInfo->returnValue does fix the bug for me.
It might however cause a new one for someone other situations, that returnValue must have been added for a good reason, thought it creates a new bug in Illustrator CS6.
https://bugs.winehq.org/show_bug.cgi?id=37113
--- Comment #8 from graben info@translucide.ca --- Reverting the commit I identified in my regression test fixes this bug for me using latest git, does anyone see a reason against it ?
commit: bc2c6d39a69201ab64a03822ddd44f904853e8c7
https://bugs.winehq.org/show_bug.cgi?id=37113
graben info@translucide.ca changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
--- Comment #9 from graben info@translucide.ca --- Commit 95c57c618affa2ff77a7a54798c4ce6b2dd1234c by Piotr Caban in latest git fixes this issue. Closing this bug.
https://bugs.winehq.org/show_bug.cgi?id=37113
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |95c57c618affa2ff77a7a54798c | |4ce6b2dd1234c CC| |focht@gmx.net Component|-unknown |ole32 Regression SHA1| |bc2c6d39a69201ab64a03822ddd | |44f904853e8c7
https://bugs.winehq.org/show_bug.cgi?id=37113
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 1.7.35.