http://bugs.winehq.org/show_bug.cgi?id=26865
Summary: WinRAR cannot drag-drop extract files Product: Wine Version: 1.3.18 Platform: x86-64 URL: http://rarlabs.com/rar/wrar393.exe OS/Version: Linux Status: NEW Keywords: download, integration Severity: minor Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: kennybobs@o2.co.uk
Dragging files FROM Nautilus into WinRAR works fine. Dragging files TO Nautilus from WinRAR doesn't do anything, it should extract the relevant files.
Dragging from WinRAR to Winefile has no effect either, but I'm not sure if it should.
Nothing of relevance in the console.
http://bugs.winehq.org/show_bug.cgi?id=26865
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source URL|http://rarlabs.com/rar/wrar |http://downloads.sourceforg |393.exe |e.net/sevenzip/7z920.exe
--- Comment #1 from Ken Sharp kennybobs@o2.co.uk 2011-04-20 11:56:07 CDT --- 7-Zip refuses to even try, and shows the "not allowed" cursor (I'm sure it has a real name). http://downloads.sourceforge.net/sevenzip/7z920.exe
Source: http://downloads.sourceforge.net/sevenzip/7z920.tar.bz2
WinRAR: http://rarlabs.com/rar/wrar393.exe
http://bugs.winehq.org/show_bug.cgi?id=26865
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|WinRAR cannot drag-drop |Cannot drag-drop extract |extract files |files (WinRAR, 7-Zip, etc.)
http://bugs.winehq.org/show_bug.cgi?id=26865
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://downloads.sourceforg |http://downloads.sourceforg |e.net/sevenzip/7z920.exe |e.net/project/sevenzip/7-Zi | |p/9.20/7z920.exe?r=&ts=1303 | |323049&use_mirror=switch
http://bugs.winehq.org/show_bug.cgi?id=26865
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://downloads.sourceforg |http://downloads.sourceforg |e.net/project/sevenzip/7-Zi |e.net/project/sevenzip/7-Zi |p/9.20/7z920.exe?r=&ts=1303 |p/9.20/7z920.exe |323049&use_mirror=switch |
http://bugs.winehq.org/show_bug.cgi?id=26865
Jerome Leclanche adys.wh@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |adys.wh@gmail.com
--- Comment #2 from Jerome Leclanche adys.wh@gmail.com 2011-04-20 18:04:28 CDT --- See http://wiki.winehq.org/DragAndDrop
I think there's a bug report for this somewhere.
http://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #3 from Ken Sharp kennybobs@o2.co.uk 2011-04-20 19:19:35 CDT --- Other bugs deal with the reverse, which works for these apps.
http://bugs.winehq.org/show_bug.cgi?id=26865
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |damjan.jov@gmail.com Component|-unknown |ole32
--- Comment #4 from Damjan Jovanovic damjan.jov@gmail.com 2011-05-24 11:01:24 CDT --- Please test something like "drag from WinRAR -> drop to 7-Zip". Winefile probably doesn't support drops at all.
Implementing "drag from Windows app -> drop to X app" is tricky: the drag loop in OLE32 has to be patched to detect whether the window that is being dragged over is a Windows window or a native window, and do special things through USER32 and winex11.drv if it's a native window...
Also the drag and drop protocol for Wayland is different from X :-(.
http://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #5 from Ken Sharp kennybobs@o2.co.uk 2011-06-06 17:55:03 CDT --- WinRAR --> 7-zip works fine (7-zip asks if you want to add the files to the archive, and then does).
7-zip --> WinRAR doesn't do anything, just gives the "NO" icon again. I don't know if it is supposed to do anything under Windows but I'll check later.
http://bugs.winehq.org/show_bug.cgi?id=26865
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |kennybobs@o2.co.uk
--- Comment #6 from Ken Sharp kennybobs@o2.co.uk 2012-06-27 01:33:32 CDT --- No change in wine-1.5.7-114-gd079b66, although I forgot to check what Windows does...
http://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #7 from Ken Sharp kennybobs@o2.co.uk 2012-07-01 13:19:05 CDT --- In Windows 7:
WinRAR --> 7-zip WinRAR extracts the files to a temporary directory and 7-zip adds them.
7-zip --> WinRAR 7-zip extracts the files to a temporary directory but WinRAR cannot find them and fails.
So I tried simply dragging and dropping a regular file (one outside of an archive) from 7-zip to WinRAR and this works fine.
So, I think, both work fine in Windows 7. I think I was over-complicating the matter anyway.
http://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #8 from Ken Sharp kennybobs@o2.co.uk 2012-07-01 13:20:34 CDT --- (In reply to comment #0)
Dragging files TO Nautilus from WinRAR doesn't do anything, it should extract the relevant files.
Oh, and dragging TO Explorer from WinRAR works fine too.
http://bugs.winehq.org/show_bug.cgi?id=26865
Ken Sharp kennybobs@o2.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|kennybobs@o2.co.uk |
http://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #9 from Ken Sharp kennybobs@o2.co.uk 2013-07-14 18:44:45 CDT --- Still present in wine-1.6-rc4.
https://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #10 from Damjan Jovanovic damjan.jov@gmail.com --- The essence of the drag loop is in dlls/ole32/ole2.c's DoDragDrop(), and the real work is done in OLEDD_TrackStateChange(). Hacking the latter to print which window is returned from WindowFromPoint() shows it always returns the "desktop window" when dragging to an X11 window outside Wine. This shows us the first problem with dragging to native windows - Wine is completely unaware that there are windows in the display other than its own.
The implications of this are dire - even currently. Open up 2 instances of 7-Zip and drag a file from the one to the other: it works. Now open an X11 window so it partially overlaps the 7-Zip window you are dropping into, and drag a file around to see the cursor's icon in different places. What you see is that the obscuring X11 window is ignored: you are dropping *through* the X11 window that Wine doesn't see, into Wine's 7-Zip window.
This leads me to believe the only way forward is to reimplement OLEDD_TrackStateChange() in winex11.drv, with it looking at X11 windows and using XQueryPointer() instead of WindowFromPoint(), XQueryTree() instead of GetParent(), while also somehow dealing with Wine's windows and their non-X11 child windows.
https://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #11 from Damjan Jovanovic damjan.jov@gmail.com --- There is now patches you can try. All 3 in the order given: http://source.winehq.org/patches/data/109522 http://source.winehq.org/patches/data/109523 http://source.winehq.org/patches/data/109524
You should definitely be able to drag out of 7-Zip into Firefox, Kate, KWrite, Ark, some others. The file managers are shaky at best. Please attach WINEDEBUG='+xdnd,+clipboard' traces if reporting back, and if possible also test dragging from a native app in the same scenario.
https://bugs.winehq.org/show_bug.cgi?id=26865
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #12 from super_man@post.com --- (In reply to Damjan Jovanovic from comment #11)
There is now patches you can try. All 3 in the order given: http://source.winehq.org/patches/data/109522 http://source.winehq.org/patches/data/109523 http://source.winehq.org/patches/data/109524
You should definitely be able to drag out of 7-Zip into Firefox, Kate, KWrite, Ark, some others. The file managers are shaky at best. Please attach WINEDEBUG='+xdnd,+clipboard' traces if reporting back, and if possible also test dragging from a native app in the same scenario.
Patch 1 is partly merged? patches 2 and 3 apply cleanly but they have some offset changes.
against wine-git (1.9.6+)
https://bugs.winehq.org/show_bug.cgi?id=26865
donanykey@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |donanykey@gmail.com
--- Comment #13 from donanykey@gmail.com --- Confirmed on MacOS @ Wine-devel 3.17
You can't drag-n-drop files out from app's file explorer (WinRar in this case) to Desktop
0009:trace:clipboard:macdrv_UpdateClipboard 0030:trace:clipboard:update_clipboard is_clipboard_owner 1 last_clipboard_update 233371240 now 233372843 000d:trace:clipboard:GetClipboardOwner returning 0x10028 0034:fixme:shell:SHAutoComplete stub 0034:fixme:ntdll:server_ioctl_file Unsupported ioctl 24000 (device=2 access=1 func=0 method=0) 0034:err:listview:LISTVIEW_WindowProc unknown msg 108c wp=00000000 lp=00000000 0035:fixme:ver:GetCurrentPackageId (0x140fdf0 0x0): stub 0034:trace:clipboard:macdrv_UpdateClipboard 0030:trace:clipboard:update_clipboard is_clipboard_owner 1 last_clipboard_update 233371240 now 233390272 0034:warn:clipboard:macdrv_UpdateClipboard failed to read from pipe: 233 0034:trace:clipboard:macdrv_UpdateClipboard 0030:trace:clipboard:update_clipboard is_clipboard_owner 1 last_clipboard_update 233371240 now 233408655 0034:fixme:shell:IPersistFile_fnSaveCompleted (0x7d9110)->(L"C:\users\_cut_\Recent\dotnet-sdk-2.1.202-win-x86.zip (2).lnk"): stub 0034:err:listview:LISTVIEW_WindowProc unknown msg 108c wp=00000000 lp=00000000 0037:trace:clipboard:GetClipboardOwner returning 0x10028 0034:trace:clipboard:macdrv_UpdateClipboard 0030:trace:clipboard:update_clipboard is_clipboard_owner 1 last_clipboard_update 233371240 now 233415292 0034:warn:clipboard:macdrv_UpdateClipboard failed to read from pipe: 233 0034:trace:clipboard:GetClipboardOwner returning 0x10028
https://bugs.winehq.org/show_bug.cgi?id=26865
Roman Pišl rpisl@seznam.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rpisl@seznam.cz
https://bugs.winehq.org/show_bug.cgi?id=26865
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #14 from Anastasius Focht focht@gmx.net --- Hello folks,
confirming, still present.
$ sha1sum 7z920.exe 55283ad59439134673fc32fc097bdd9ae920fbc6 7z920.exe
$ du -sh 7z920.exe 1.1M 7z920.exe
$ wine --version wine-5.5-373-g38e95ed222
Regards
https://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #15 from Roman Pišl rpisl@seznam.cz --- Hello folks, hello Damjan, do you plan to update your patches for current Wine? I can help with testing.
https://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #16 from Damjan Jovanovic damjan.jov@gmail.com --- (In reply to Roman Pišl from comment #15)
Hello folks, hello Damjan, do you plan to update your patches for current Wine? I can help with testing.
The patches led to a lengthy discussion:
https://www.winehq.org/pipermail/wine-devel/2015-March/106736.html https://www.winehq.org/pipermail/wine-devel/2015-March/106757.html https://www.winehq.org/pipermail/wine-devel/2015-March/106788.html https://www.winehq.org/pipermail/wine-devel/2015-March/106789.html
Since MacOSX uses a very different drag and drop API, this approach cannot be ported to Mac, and they essentially wanted it completely rewritten, so that the entire DoDragDrop() function is implemented by the graphics driver (like winex11.drv on X11) in all cases.
https://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #17 from Roman Pišl rpisl@seznam.cz --- Yes.. but I'd also be quite satisfied and grateful for just working out-of-tree patches until an absolutely perfect solution emerges after the next one or two decades ;-)
I looked at it and the thing is that the 3rd patch don't apply after dnd rework during last years and I'm not familiar with the dnd mechanism and even don't know whether it is portable to the current tree.
https://bugs.winehq.org/show_bug.cgi?id=26865
Patrick patrick+winehq.org@laimbock.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |patrick+winehq.org@laimbock | |.com
--- Comment #18 from Patrick patrick+winehq.org@laimbock.com --- My uses case: music production in a DAW like Bitwig and Ardour where drag-and-drop between any windows VST plugin and the DAW is not possible.
Like Roman I much prefer workable out-of-tree patches for Linux over waiting for a cross platform solution.
Damjan: it would be *most* appreciated if you could update your patches for 5.21 (staging?). I will test anything you post here.
https://bugs.winehq.org/show_bug.cgi?id=26865
--- Comment #19 from Patrick patrick+winehq.org@laimbock.com --- Created attachment 68651 --> https://bugs.winehq.org/attachment.cgi?id=68651 DnD_Wine_to_X11_staging-5.21_WIP.patch
I tried to apply Damjan's patches to wine-staging 5.21. AFAICT the first patch is already applied in 5.21. The second patch partially applies but some code has changed and I skipped that part which starts at: @@ -2261,7 +2276,7 @@ static void OLEDD_TrackStateChange(TrackerWindowInfo* trackerInfo) and ends at diff --git a/dlls/user32/driver.c b/dlls/user32/driver.c
More code has changed (no longer present) relating to the third patch. My C & Wine knowledge is insufficient to fix this. So I'm attaching a diff of what did apply. Hopefully Damjan or somebody with sufficient C & Wine experience can finish the patch. Thanks!
https://bugs.winehq.org/show_bug.cgi?id=26865
Neko-san nekoNexus@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |nekoNexus@protonmail.ch