Closed
Bug 97413
Opened 23 years ago
Closed 21 years ago
Dragging non-link image to Finder/Explorer should save image, not link shortcut
Categories
(Core :: DOM: Copy & Paste and Drag & Drop, defect, P4)
Core
DOM: Copy & Paste and Drag & Drop
Tracking
()
RESOLVED
FIXED
mozilla1.4final
People
(Reporter: benjamin, Assigned: nisheeth_mozilla)
References
Details
Attachments
(2 files, 4 obsolete files)
13.58 KB,
patch
|
Details | Diff | Splinter Review | |
13.05 KB,
patch
|
Details | Diff | Splinter Review |
From Bugzilla Helper: User-Agent: Mozilla/5.0 (Macintosh; U; PPC; en-US; rv:0.9.3+) Gecko/20010828 BuildID: 2001082805 Actually when I drag images on Finder the image path (Image w/o link) or the URL (image with link) is saved: not the image file as in NS4.7. I don't know why it's the case but it would be nice to recover this behavior.
Comment 1•23 years ago
|
||
Confirmed and setting to normal.
Severity: enhancement → normal
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: [RFE] When dragging image on Finder the image file should be saved not the link → When dragging image on Finder the image file should be saved not the link
Comment 2•23 years ago
|
||
Looks like similar behavior on Win98 ("Do you want to add an Active Desktop item to your desktop?") Not sure who should get this, but based on related bugs, ->ben/enhancement/p4
Assignee: trudelle → ben
Severity: normal → enhancement
Priority: -- → P4
<sdagley> pinkerton is generally doomed to D&D bugs
Assignee: ben → pinkerton
Comment 4•23 years ago
|
||
since we don't yet support image dragging, this is by design i guess. brade can comment on if this is already a dupe or a real bug.
Assignee: pinkerton → brade
Hardware: Macintosh → All
Updated•23 years ago
|
Comment 5•23 years ago
|
||
spam: over to File Handling. haven't changed the current owners, but i did take qa contact for the nonce. pls do retriage/reassign if needed.
Component: XP Toolkit/Widgets → File Handling
QA Contact: jrgm → sairuh
Comment 6•23 years ago
|
||
Bugs targeted at mozilla1.0 without the mozilla1.0 keyword moved to mozilla1.0.1 (you can query for this string to delete spam or retrieve the list of bugs I've moved)
Target Milestone: mozilla1.0 → mozilla1.0.1
IIRC, a modified key is used in NN to request that a link be created instead of saving the image. It would be nice if when this bug is fixed, that alternate behavior is also verified to work.
Comment 8•23 years ago
|
||
*** Bug 127287 has been marked as a duplicate of this bug. ***
*** Bug 143340 has been marked as a duplicate of this bug. ***
Comment 10•22 years ago
|
||
*** Bug 145637 has been marked as a duplicate of this bug. ***
Comment 11•22 years ago
|
||
I suggest changing this bugs title to 'Dragging (dnd) an image to desktop or other application drags URL (linK) rather than image' as its no-longer Mac-specific. I'd do it myself but can't figure out how to
Comment 12•22 years ago
|
||
Isn't this a regression rather than an enhancement? I could swear this used to work in Moz....
Updated•22 years ago
|
Target Milestone: mozilla1.0.1 → mozilla1.2alpha
Updated•22 years ago
|
Target Milestone: mozilla1.2alpha → Future
Comment 14•22 years ago
|
||
I'll likely never see that vampira erotica again, and all I've got are a bunch of links. WOE is me! What could have possibly went wrong?!? ;o)
Comment 15•22 years ago
|
||
It would be nice to make this an option. Saving the link could be useful but the exected behaviour (ie. the behaviour from IE and Netscape) is to download the image as an image file. (vlb@cfcl.com)
Comment 16•22 years ago
|
||
*** Bug 159668 has been marked as a duplicate of this bug. ***
Comment 18•22 years ago
|
||
Flinging bug back to component owner. Not that I think it's necessarily set to the right component but I don't want this bug on my plate :-)
Assignee: sdagley → law
Updated•22 years ago
|
Status: NEW → ASSIGNED
Comment 19•22 years ago
|
||
*** Bug 151174 has been marked as a duplicate of this bug. ***
Comment 20•22 years ago
|
||
This isn't an enhancement, it's a bug. No other browser behaves like Moz does.
Severity: enhancement → normal
Summary: When dragging image on Finder the image file should be saved not the link → Dragging non-link image to Finder/Explorer should save image, not link shortcut
Updated•22 years ago
|
QA Contact: sairuh → petersen
Comment 21•22 years ago
|
||
Resetting the component to better suit the bug, I think.
Component: File Handling → XP Apps: Drag and Drop
Comment 22•22 years ago
|
||
This is a regression from NS 4.7x and before. Could someone target a fix for a milestone more recent than "Future"?
Comment 23•22 years ago
|
||
Watch bug 45823 for Mac fixes for this problem.
Comment 24•21 years ago
|
||
*** Bug 196051 has been marked as a duplicate of this bug. ***
Comment 25•21 years ago
|
||
I think that also link dragging should be saved not as a shortcut if the user presses "Ctrl" while dragging. It should save the source.
Comment 26•21 years ago
|
||
Fixed on Mac. Giving to Nisheeth for Windows love.
Assignee: law → nisheeth
Status: ASSIGNED → NEW
Assignee | ||
Updated•21 years ago
|
Status: NEW → ASSIGNED
Keywords: helpwanted
Assignee | ||
Comment 27•21 years ago
|
||
So, I have an issue here. On the Mac, it is possible to get the drop location of a drag-drop operation. I've read up on the Windows drag/drop APIs and can't figure out how to get that information. The only communication between the drop target and the drop source that I know about is via the IDataObject and the IDropSource interfaces. None of the methods on those interfaces give me the drop location. Is there some other way to get that info? If you know of any Windows hackers who can answer this question, please forward it to them or point them to this bug. Thanks! CCing Bill Law and Mike Judge in case they know what to do here. For now, I'm going forward with the terrible terrible hack of saving the dragged file in a known temporary location and passing the filename back to the drop target which copies the file from the temp location to the actual drop location. Effectively, the dropped file is copied twice. :-( Help!
Assignee | ||
Comment 28•21 years ago
|
||
Cutting/pasting some email discussion that happened on my earlier question: Nisheeth wrote: Simon, I wonder if Mac's drag/drop isn't faced with the same "target can be file system or any application" problem? How do your changes handle the case where an image is drag-dropped from Mozilla into another Mac application like Adobe Photoshop? Thanks for the help, Bill! Much appreciated! My main goal here was to avoid writing too much Windows specific code. Seems like that ain't a possibility. The drop handler extension approach suggested on the second google link will only work if the file is dropped on a file system folder and will probably be more code (drop handlers need to be separate DLLs with their own class factories, implement IPersistFile and IDropTarget) than fixing this the right way -- stream the data out from the drop source to the data target via the IStream interface (I only need to implement IStream on the existing data object). The IStream approach will work if the file is dropped anywhere -- file system or another Windows app. So, I'll go the IStream route as a second step after I get things working with the hacky double copy... Nisheeth -- Bill Law wrote: > I researched this a little this evening, and found this: > > http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=OU3a7KKT% 23GA.225%40uppssnewspub04.moswest.msn.net > > > It seems that maybe you really don't want to know where the file was > dropped :-). Probably because then you wouldn't do the right thing when > your file was dropped on some spiffy new Windows application that wanted > to handle the data itself. Makes a certain amount of sense. > > So the problem is how to get the target to transfer the data > efficiently. I can't grok the IDataObject details sufficiently to know > how to do that, sorry. > > On the other hand, where there's a will, there's usually a way (in > Windows). See > http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&oe=UTF- 8&threadm=eQfoKpH09GA.121%40uppssnewspub05.moswest.msn.net&rnum=6&prev=/groups% 3Fq%3Ddrop%2Bhandler%2Bshell%2Bextension%26ie%3DUTF-8%26oe%3DUTF-8%26hl%3Den > > > Bill
Assignee | ||
Comment 29•21 years ago
|
||
This patch is a work in progress so please don't review yet. Simon, your XP code is working great and the dropped file is getting saved in the temp directory. But, I get a crash up in a windows DLL as I do the drag/drop. I've stepped through the Windows specific code I wrote and don't find anything obviously wrong. Will debug this more tomorrow. If any Windows hacker out there sees something that I don't please comment. Thanks!
Assignee | ||
Comment 30•21 years ago
|
||
OK, after tons of experimentation with Windows drag/drop API code, this patch allows images to be dragged from Mozilla to the desktop. It leverages Simon's XP code to first save the dragged image to a temporary location and then uses the CF_HDROP clipboard format to tell Windows to copy the file from the temp location to the drop destination. The issues fixed by this patch are: - the crash in Windows drag/drop code I was running into with the earlier patch. - the temporary file is only created once even though GetData() can be called multiple times by different drop targets as the mouse hovers over them during the drag operation. - the temporary file is moved to the final destination instead of getting copied. I think this is a good enough fix for now, at least for image dragging where all the data is on the local disk. I am going to file another bug on myself to implement drag drop via the CF_FILEDESCRIPTOR and CF_FILECONTENT clipboard formats and pass the file's data to the drop target through the IStream interface. But, that will be a lot of Windows specific code. We'll basically have to serve the dragged file through a Necko stream to an IStream that the drop target will pull its data from.
Attachment #121404 -
Attachment is obsolete: true
Assignee | ||
Comment 31•21 years ago
|
||
Comment on attachment 121635 [details] [diff] [review] Patch for first review Asking Rod for a review and Simon for a super review. Please see comment 30 for an explanation of what the patch does.
Attachment #121635 -
Flags: superreview?(sfraser)
Attachment #121635 -
Flags: review?(rods)
Assignee | ||
Updated•21 years ago
|
Target Milestone: Future → mozilla1.4beta
Assignee | ||
Comment 32•21 years ago
|
||
bug 203307 filed to track implementing drag and drop via the IStream interface.
Comment 33•21 years ago
|
||
Can you please tell what you thing about comment #25 ?
Assignee | ||
Comment 34•21 years ago
|
||
Comment on attachment 121635 [details] [diff] [review] Patch for first review rods is off working on non mozilla stuff. Changing reviewer to smontagu, the new owner. Simon, please see comment 30 and call me if you have any questions on the patch. Also, since the patch is in windows only code and kin is windows guy, changing sr request to point to him. sfraser, please feel free to take a look at this if you want as well. Another pair of eyes can only help! :-)
Attachment #121635 -
Flags: superreview?(sfraser)
Attachment #121635 -
Flags: superreview?(kin)
Attachment #121635 -
Flags: review?(smontagu)
Attachment #121635 -
Flags: review?(rods)
Comment 35•21 years ago
|
||
I wasn't able to debug it, but I reviewed it closely and it sems to look ok. r=rods
Comment 36•21 years ago
|
||
Comment on attachment 121635 [details] [diff] [review] Patch for first review ==== In CEnumFormatEtc::InsertFEAt() shouldn't we be incrementing mNumFEs even in the case where you don't resize the array? Also, shouldn't we be incrementing mMaxNumFEs after the reallocation? I'm assuming the number of FEs will usually be small and that there is no need to optimize the reallocation code to just insert the new FE since it has to copy the data from the old to new array. ==== Also the one concern I have is the possibility of cluttering the OS temp directory if the user drags and drops into an app instead of the finder. I think that could probably be addressed in another bug after you've landed this.
Assignee | ||
Comment 37•21 years ago
|
||
Kin, I now increment mMaxNumFEs and mNumFEs properly. Good catch! About to file a new bug to take care of file cluttering issue in the temp directory...
Attachment #121635 -
Attachment is obsolete: true
Comment 38•21 years ago
|
||
Comment on attachment 122054 [details] [diff] [review] Patch that addresses Kin's comments sr=kin@netscape.com
Attachment #122054 -
Flags: superreview+
Comment 39•21 years ago
|
||
Comment on attachment 122054 [details] [diff] [review] Patch that addresses Kin's comments I forgot to ask if these temp files are created when just dragging images around inside the same composer/mail compose window?
Assignee | ||
Comment 40•21 years ago
|
||
bug 203847 filed to fix issue regarding file cluttering in temp directory... Kin, no these temp files aren't created while dragging images inside Composer. That raises another issue though. Currently, dragging images from Composer out to the desktop doesn't invoke sfraser's XP image drag/drop code changes to nsContentAreaDragDrop.cpp. This is because Composer implements its own drag/drop helper objects. We are gonna have to make XP changes to Composer and make sure the the file promise flavor is entered into the nsITransferable when images are dragged. I'll file a new bug for that and work with sfraser on it...
Assignee | ||
Comment 41•21 years ago
|
||
bug 203852 filed to track drag image from composer to desktop issue.
Assignee | ||
Updated•21 years ago
|
Attachment #122054 -
Flags: review?(rods)
Assignee | ||
Comment 42•21 years ago
|
||
Comment on attachment 122054 [details] [diff] [review] Patch that addresses Kin's comments bringing r= from rods forward to this patch.
Attachment #122054 -
Flags: review?(rods) → review+
Comment 43•21 years ago
|
||
Comment on attachment 122054 [details] [diff] [review] Patch that addresses Kin's comments I see rods beat me to r=, but I will make my comment anyway :-) If ::GlobalAlloc() fails, don't you want GetPreferredDropEffect() and GetFile() to fail? (as GetFileDescriptorInternetShortcut() and GetFileContentsInternetShortcut() do now)
Updated•21 years ago
|
Attachment #121635 -
Flags: review?(smontagu)
Attachment #121635 -
Flags: superreview?(kin)
Comment 44•21 years ago
|
||
This patch has r= and sr=... Can we get it landed for 1.4???
Assignee | ||
Comment 45•21 years ago
|
||
I've checked in this patch into 1.5 alpha. About to attach the final patch that got checked in. It addresses Simon Montagu's comment. I don't want to check in this patch into 1.4 until I fix bug 203847. I have a fix in hand which I will attach to the bug shortly. Once its passed reviews, I'll check it into 1.5 alpha. Then, if things look good on the trunk, I'll check in both the fix for this bug and the fix for bug 203847 into 1.4...
Assignee | ||
Comment 46•21 years ago
|
||
This is the patch I checked into 1.5 alpha.
Attachment #122054 -
Attachment is obsolete: true
Comment 47•21 years ago
|
||
Wonderful! Thank you for your efforts, Nisheeth!
Assignee | ||
Comment 48•21 years ago
|
||
OK, so the fix to bug 203847 exposed a pre-existing bug (bug 209593) on the trunk related to drag/drop of emails. Kin has checked in a fix to bug 209593 on the trunk. But, this "pseudo-regression" has made me wary of checking in the fixes to this bug, bug 203847, and bug 209593 on the 1.4 branch so close to the 1.4 final release. Drag/drop is used in many places in the app and I'd much rather have these fixes bake properly over the 1.5 app cycle. I'm marking this bug fixed. If people feel strongly about seeing these bug fixes land on the 1.4 branch, please say so! Thanks!
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Target Milestone: mozilla1.4beta → mozilla1.4final
Comment 49•21 years ago
|
||
I'm under W98se, mozilla 1.6a build 2003092304. Unfortunately, when i drag an image from a page to desktop or any other folder) i got just a bad system error message: Unable to copy: <some blank spaces> File system error (1026) I don't feel this issue has been completely fixed, at least not in W98. What's wrong ?
Comment 50•21 years ago
|
||
Over in Bug #83803, I leverage the work Nisheeth and Simon did to support dragging attachments from the mail window to the desktop. I ran into a problem though because of the temp file solution we use on windows. Large mail attachments can take a long time to download from the server. If you drag an attachment, we start downloading the attachment. When you release the drop, the OS copies the temporary file we have been downloading to (as described by the windows fix for this bug), over to the final destination such as the desktop. If we have not finished downloading the attachment, you get an operating system error saying "Another process is accessing this file and it cannot be moved". If we were able to write directly to the drop destination instead of having the OS give us a temporary file to write it to, we might avoid this error. I wonder how other applications make this work.
Comment 51•21 years ago
|
||
Hmm, looks like 4.x didn't have this problem. So there must be a better way to fix this problem that does not involve copying to a temporary file first. With 4.x, the desktop icon does not show up either until we are done downloading the attachment.
Comment 52•20 years ago
|
||
When one tries to drag and drop a large file from browser's window to file system (eg. Windows Explorer) one can get an "Sharing Violation" error, or get not what was expected. For example go to: http://www.pakistan-tradenetwork.com/admin/images/vase-%20large.jpg, wait while the image downloads and then choose Edit->Preferences... Advanced->Cache and choose clear cache. Then drag the image out of the browser window to, say desktop and check the results. You'll get something but not the image you've dragged. This happens because WebBrowserPersist is not done downloading the image to the temp location on your computer and explorer already tries to move a file to the desktop (download isn't done yet). Here I suggest a fix to this problem. Just before the drag starts, create a hidden window and register it to recieve notifications from the shell about events in the file system. And in nsDataObj::GetFile instead of starting the download to the temp dir, just create an empty file there and let the user drag that empty file. When the drop occurs shell will notify our hidden window that SHCNE_RENAMEITEM event occurred and pass the path of the new item. We store that path and when drag loop exits we kick off the download to that path. Check the code for the details.
Comment 53•20 years ago
|
||
@Yuri I think that's another Drag'n'Drop bug and haven't todo with the problem described in this bug. Maybe there is another bug with this issue or create a new bug.
Comment 54•20 years ago
|
||
Comment on attachment 164149 [details] [diff] [review] Changes to Drag and Drop of files please don't use tabs. please use cvs diff -up10 (pick 10 to be a number which gives reasonable context)
Comment 55•20 years ago
|
||
oh, and lastly, please manage your changes in a new bug (reference the bug number here), this bug is resolved.
Comment 56•20 years ago
|
||
Fixed previous version of an attachment (done some minor refactoring).
Attachment #164149 -
Attachment is obsolete: true
Comment 57•20 years ago
|
||
Comment on attachment 164257 [details] [diff] [review] Suggested changes to drag and drop code. When dragging large images or files out of the browser window using "application/x-moz-file-promise" with the file or image that has not been cached yet, you can get a "Sharing Violation" or an incomplete file on Windows. This patch fixes this issue.
Attachment #164257 -
Flags: review?(emaijala)
Comment 58•20 years ago
|
||
Comment on attachment 164257 [details] [diff] [review] Suggested changes to drag and drop code. Please generate a new diff with context: cvs diff -u15 nsD* It looks like there are some tab characters in some of the code added; please convert those to spaces. Thanks!
Comment 59•20 years ago
|
||
As people suggested I filed a new bug #267426. And posted my patch there with tabs removed:).
Updated•20 years ago
|
Attachment #164257 -
Flags: review?(emaijala)
You need to log in
before you can comment on or make changes to this bug.
Description
•