[Update for 1.0 PR] Super Drag and Go

Announce and Discuss the Latest Theme and Extension Releases.
Locked
IdoMcFly
Posts: 382
Joined: November 3rd, 2003, 1:06 am

Post by IdoMcFly »

IdoMcFly wrote:
IdoMcFly wrote:I'm using 0.2.4d2+securitypatch on 1.5 Win32 and Linux. No pbl on win32 but on Linux I've notice that there is a lag time while draging, like it's loading someting from harddrive before superdragandgo is effective. Anybody can confirm ?


This problem occur only on the first time in a Friefox session we use superdragandgo. Everything is normal after this first time.


just bumped on this and I think it is related to my problem:
https://bugzilla.mozilla.org/show_bug.cgi?id=305970
PlasmaGhost
Posts: 1
Joined: December 7th, 2005, 11:53 am

Post by PlasmaGhost »

Is there a way to change the extention so that it won't give focus to the new tab? I'm using version 0.24d1
User avatar
Bazon
Posts: 138
Joined: June 21st, 2005, 5:35 am
Location: Berlin\Germany\Europe

Post by Bazon »

Hey, thanks for the new features in 0.24d1!

Two things I'd love to see imporved:

1. The homepage URL
The Homepage URL of the extension (in the install.rdf) still links to http://morphis.eu.org/ , but there is no information on newer builds.
It would be better if it links to http://superdragandgo.mozdev.org

2. Saving images in %tmp%, too
Images saved by dragging are still saved in two places:
In the selected folder and in %tmp% (which is normaly C:\Documents and Settings\username\local settings\temp, but typing %tmp% in the windows exploreres adressbar will lead you there...)
So is it possible to avoid pictures saved in %tmp%, too?

Thanks!
User avatar
Bazon
Posts: 138
Joined: June 21st, 2005, 5:35 am
Location: Berlin\Germany\Europe

Re: Security hall

Post by Bazon »

Sorry for my last post above, I habe to admit I wasn't aware of the situation (developer not reachable anymore + securefix)

But speaking of the securefix:
The official update link from addons.mozilla.org still links to
http://releases.mozilla.org/pub/mozilla.org/extensions/super%20dragandgo/super_dragandgo-0.2.4d1-fx.xpi (found out with the %xpiLink% function of InfoLister)
which is a version without this security fix! v

shadowbq wrote:A new source patch for Soccer_dudes code would be (line number adjustment)

Code: Select all

--- content/superdrag.js   
+++ content/superdrag.js   
@@ -108,2 +108,3 @@
     {//default action: open it to a new tab
+        getBrowser().dragDropSecurityCheck(aEvent, aDragSession, uri)



Is there nothing that can be done about it?
I mean, the official really link should link to a clean version...



and @PlasmaGhost:
drag the Link downwards...

sheers,
Bazon
mfenech
Posts: 89
Joined: November 20th, 2004, 5:51 am
Location: Texas

Post by mfenech »

My 2 cents...

I use SDaG half a dozen times a day for Google searches. As long as there are directional drag searches being developed, please make one to search an exact phrase (i.e., enclosed in quotation marks) in Google. Thanks.
User avatar
AkiraGTR
Posts: 3
Joined: December 14th, 2005, 6:00 pm

Suggestion

Post by AkiraGTR »

Hi, everyone. I'd like to suggest a feature: some options to select witch search engines to use when dragging a word. Sorry if somebody have already suggested it but 13 pages I think is too much to read.
Thank you!
ajg23
Posts: 17
Joined: June 7th, 2003, 7:20 pm

Used to be able to drag up for foreground, down for backgrou

Post by ajg23 »

Used to be able to drag a text string up for search in foreground tab, down for search in background tab...Hope to have this functionality again at least as an option!

LOVE THE EXTENSION!
A
ul
Posts: 46
Joined: May 14th, 2005, 5:24 am

Post by ul »

With this extension, can you drag a linked file (downloadable link) to the desktop and have it start downloading in the download manager?
User avatar
shawn^
Posts: 193
Joined: November 20th, 2005, 1:26 am

Post by shawn^ »

yes!
User avatar
Schrade
Posts: 1187
Joined: March 17th, 2004, 12:24 am

Post by Schrade »

ul wrote:With this extension, can you drag a linked file (downloadable link) to the desktop and have it start downloading in the download manager?


No. Doing that will just put a URL link on your desktop.

The only files it can download this way are inline images. (i.e. drag an image on a page to your desktop and it'll download it)
"Linux is for those who hate Windows, BSD is for those who love Unix." -Some Guy
Try my themes: QuBranch and QuTrunk
Fix Firefox's Resized image scrolling speed: <b>Bug 163975</b>
jasonhk
Posts: 69
Joined: February 14th, 2004, 11:49 pm

Post by jasonhk »

hey, i found a little problem,

i am using v2.4, firefox 1.5,

if i selected the text of the link, then i drop the "link",
it will open google search "the text of the link",
not open the url of the link,

in this case,i think open the url of the link is more sensible, it is right ?

;-)
Old Regis
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Re: Suggestion

Post by Old Regis »

AkiraGTR wrote:Hi, everyone. I'd like to suggest a feature: some options to select witch search engines to use when dragging a word. Sorry if somebody have already suggested it but 13 pages I think is too much to read.

Some time ago, I made some changes to always use google and not the default search engine. I agree with you having choice of the SO would be really appreciated.
Ven0m
Posts: 60
Joined: June 15th, 2004, 2:33 pm

Post by Ven0m »

Is there a chance that it worked with Mouse Gestures?
using Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9a1) Gecko/20060107 Firefox/1.6a1, Mouse Gestuers 1.0.3, Super DragAndGo 0.2.4 d1
old zeniko
Posts: 0
Joined: December 31st, 1969, 5:00 pm

Post by old zeniko »

Here goes a possible solution to the images-saved-in-temp-folder problem (you'll have to hack it yourself into the extension):

1. Find superdrag.jar in your profile directory, extract its content and load superdrag.js in your favorite editor.
2. Add a new field to the superDrag object:

Code: Select all

  onDragStart: function(aEvent, aXferData, aDragAction)
  {
   // prevent images of being dragged themselves (drag a link to them instead)
   
   // make sure we're dragging an image
   var target = aEvent.originalTarget;
   if (!/^img$/i.test(target.localName)) throw new Error(); // fall back to default drag handler
   
   // make sure we've actually got a link to drag
   for (var obj = target.parentNode; obj && !/^a$/i.test(obj.localName); obj = obj.parentNode);
   var url = ((obj)?obj.href:null) || target.src;
   if (!url) throw new Error();
   
   var caption = ((obj)?obj.title:null) || target.alt || target.title || url.replace(/^.*\//, "") || url;
   aXferData.data = new TransferData();
   // mark unlinked images as downloadable by onDrop ("[Image] ")
   aXferData.data.addDataForFlavour("text/x-moz-url", url + "\n" + ((obj)?"":"[Image] ") + caption);
   aXferData.data.addDataForFlavour("text/unicode", url);
   aXferData.data.addDataForFlavour("text/html", '< a href="' + url + '">' + caption + '</a>');
   
   aDragAction.action = Components.interfaces.nsIDragService.DRAGDROP_ACTION_COPY | Components.interfaces.nsIDragService.DRAGDROP_ACTION_MOVE | Components.interfaces.nsIDragService.DRAGDROP_ACTION_LINK;
  },

3. Register this method in the onLoad function (just before this.loaded = true):

Code: Select all

      tabbrowser.addEventListener('draggesture', function(event) {nsDragAndDrop.startDrag(event, contentAreaDNDObserver);} , true);
      contentAreaDNDObserver.onDragStart = superDrag.onDragStart;

4. Replace additionally the following lines:

Code: Select all

101c125
<                   if(aDragSession.sourceNode != null && !(/^(file\:\/\/\/)/.test(uri)) )
---
>                   if(/^\[Image\] /.test(xferData[1]) && !(/^(file\:\/\/\/)/.test(uri)) )
103c127
<                      if(!aEvent.ctrlKey && aDragSession.sourceNode.nodeName == 'IMG' )
---
>                      if(!aEvent.ctrlKey)
124c148
<                              saveURL(aDragSession.sourceNode.src, null, null, false, true);
---
>                              saveURL(uri, null, null, false, true);
129c153
<                            superDrag.saveImage(aDragSession.sourceNode.src);
---
>                            superDrag.saveImage(uri);

5. Optionally delete the function checkCanDrop and the reference to it in onLoad.
6. Pack all extracted files (including the modified superdrag.js) back into superdrag.jar and restart Firefox.

Now images are never saved in the temporary folder. You can still download unlinked images by dropping them anywhere inside the browser (as long as the option to do so is activated). If you also want to download linked images (instead of loading the link), replace in onDragStart ((obj)?"":"[Image] ") with "[Image] ".

With this patch, you however won't be able to drag an image directly into any other application. Dragging an image will now result in a link to the image being dragged. Dragging images outside of Firefox without the temporary files being created won't be possible unless bug 203307 is fixed.
Last edited by old zeniko on January 9th, 2006, 6:44 am, edited 1 time in total.
User avatar
Bazon
Posts: 138
Joined: June 21st, 2005, 5:35 am
Location: Berlin\Germany\Europe

Post by Bazon »

zeniko wrote:Here goes a possible solution to the images-saved-in-temp-folder problem
Thanks for looking at this problem! :P
zeniko wrote:Images are now only saved in the temporary folder.
  1. Is ist also possible to create the opposite option: Only saving in self-setted folder but notin the temp directory?
  2. It didn't work for me. Images are still saved in both folders. Is there something wrong with my superdrag.js?
    Here it is:


    var superDrag = {

    loaded: false,
    OverAlready: false,
    StartDragX: 2,
    StartDragY: 3,

    // new tip (part1) from http://forums.mozillazine.org/viewtopic ... b8#2003454

    onDragStart: function(aEvent, aXferData, aDragAction)
    {
    // prevent images of being dragged themselves (drag a link to them instead)

    // make sure we're dragging an image
    var target = aEvent.originalTarget;
    if (!/^img$/i.test(target.localName)) throw new Error(); // fall back to default drag handler

    // make sure we've actually got a link to drag
    for (var obj = target.parentNode; obj && !/^a$/i.test(obj.localName); obj = obj.parentNode);
    var url = ((obj)?obj.href:null) || target.src;
    if (!url) throw new Error();

    // drag the image itself, if we might want to download it directly
    var DragImgDownload = false;
    try
    {
    DragImgDownload = Components.classes['@mozilla.org/preferences-service;1'].
    getService(Components.interfaces.nsIPrefService).
    getBranch('superdrag.settings.').getBoolPref('dragimgdownload');
    }
    catch (err) { }
    if (DragImgDownload && !obj) throw new Error();

    var caption = ((obj)?obj.title:null) || target.alt || target.title || url.replace(/^.*\//, "") || url;
    aXferData.data = new TransferData();
    aXferData.data.addDataForFlavour("text/x-moz-url", url + "\n" + caption);
    aXferData.data.addDataForFlavour("text/unicode", url);
    aXferData.data.addDataForFlavour("text/html", '< a href="' + url + '">' + caption + '</a>');

    aDragAction.action = Components.interfaces.nsIDragService.DRAGDROP_ACTION_COPY | Components.interfaces.nsIDragService.DRAGDROP_ACTION_MOVE | Components.interfaces.nsIDragService.DRAGDROP_ACTION_LINK;
    },

    // end of new tip part 1

    onLoad: function()
    {
    // Overwrite original functions with modified versions if not already done
    this.OverAlready = false;
    if(!this.loaded)
    {
    var tabbrowser = document.getElementById("content");
    tabbrowser.addEventListener('dragover', function(event) {nsDragAndDrop.dragOver(event, contentAreaDNDObserver);} , false);
    tabbrowser.addEventListener('drop', function(event) {nsDragAndDrop.dragOver(event, contentAreaDNDObserver);} , false);
    contentAreaDNDObserver.onDragOver = superDrag.onDragOver;
    contentAreaDNDObserver.onDrop = superDrag.onDrop;
    nsDragAndDrop.checkCanDrop = superDrag.checkCanDrop;
    this.loaded = true;
    }
    // new tip (part2) from http://forums.mozillazine.org/viewtopic ... b8#2003454
    tabbrowser.addEventListener('draggesture', function(event) {nsDragAndDrop.dragStart(event, contentAreaDNDObserver);} , true);
    contentAreaDNDObserver.onDragStart = superDrag.onDragStart;
    // end of new tip part2
    },
    onDragOver: function(aEvent, aFlavour, aDragSession)
    {
    aDragSession.canDrop=true;
    if(!this.OverAlready)
    {
    this.StartDragX = aEvent.screenX;
    this.StartDragY = aEvent.screenY;
    this.OverAlready = true;
    //alert("in side of dragover: "+StartDragX+" ; "+StartDragY);
    }

    return true;
    },

    onDrop: function (aEvent, aXferData, aDragSession)
    {
    // var myUrl = transferUtils.retrieveURLFromData(aXferData.data, aXferData.flavour.contentType);

    // valid urls don't contain spaces ' '; if we have a space it isn't a valid url so bail out
    // if (!myUrl || !myUrl.length || myUrl.indexOf(" ", 0) != -1)
    // return;
    var prefService = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getBranch('superdrag.settings.');


    var notice0="xorg=" + this.StartDragX + "; yorg=" + this.StartDragY+" | ";

    var EndDragX = aEvent.screenX;
    var EndDragY = aEvent.screenY

    var notice="EndDragX="+EndDragX+"; EndDragY="+EndDragY+" | ";


    var directionX = (EndDragX - this.StartDragX)>0 ? "R" : "L" ;
    var directionY = (EndDragY - this.StartDragY)>0 ? "D" : "U" ;

    this.StartDragX=0;
    this.StartDragY=0;


    var notice2="direction = " + directionX + directionY;
    var finalnotice=notice0+notice+notice2;
    // alert(finalnotice);


    // Get the preferences service
    var gPrefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch(null);


    switch (document.firstChild.getAttribute('windowtype')) {
    case "navigator:browser":
    var xferData = aXferData.data.split("\n");
    var uri = xferData[0] ? xferData[0] : xferData[1];
    if (uri)
    {
    // url test

    var DomainName = /(\w+(\-+\w+)*\.)+\w{2,7}/ ;
    var HasSpace = /\S\s+\S/;
    var forceAsURL = DomainName.test(uri) && (!HasSpace.test(uri));

    if( forceAsURL || (/^(file\:\/\/\/)/.test(uri)) ) //force it to a url or local file/directory
    {
    //my general file protocol match is added from 0.2.2 and handle the local file dropped in by system's addTab() function.
    //for firefox 0.8, if xpi file dropped in and then choose to cancel will cause firefox closing
    //clash: I don't why.
    //MonkeySage's matching code and installer is need for 0.9
    //for 0.8 addTab() alone works ok

    //check if an external xpi file is dropped.
    if (/^(file\:\/\/\/)/.test(uri)&&/([^\/]+\.xpi)$/.test(uri))
    {
    eval("InstallTrigger.install({ '" + RegExp.$1 + "' : uri })");
    break;
    }

    //check if the an internal image is dropped
    if(aDragSession.sourceNode != null && !(/^(file\:\/\/\/)/.test(uri)) )
    {
    if(!aEvent.ctrlKey && aDragSession.sourceNode.nodeName == 'IMG' )
    {
    var DragImgDownload=true;
    try
    {
    DragImgDownload =prefService.getBoolPref('dragimgdownload');
    }
    catch (err) {}

    if (DragImgDownload)
    {

    var ImgDownloadOption = "dlmg";
    try
    {
    ImgDownloadOption = prefService.getCharPref('strimgdownloadoption');
    }
    catch (err) {}

    if(ImgDownloadOption=="dlmg")
    {
    saveURL(aDragSession.sourceNode.src, null, null, false, true);

    }
    else if(ImgDownloadOption=="dffd")
    {
    superDrag.saveImage(aDragSession.sourceNode.src);

    }
    break;
    }
    }
    }

    {//default action: open it to a new tab
    getBrowser().dragDropSecurityCheck(aEvent, aDragSession, uri)
    if(getWebNavigation().currentURI.spec=="about:blank")
    {
    loadURI(uri,null,null);
    break;
    }

    var newTab = getBrowser().addTab(uri);
    var LoadLinkinFg=false;
    try
    {
    LoadLinkinFg =prefService.getBoolPref('loadlinkinfg');
    }
    catch (err) {}
    //if(LoadLinkinFg)
    if(
    (directionY=="U" && (aDragSession.sourceDocument) )
    ||( directionX=="R" && !(aDragSession.sourceDocument))
    )
    getBrowser().selectedTab = newTab;
    }
    }
    else //it's a text string, so search it
    {
    // part of following code is borrowed from extension "Web Search Plus" created by Pike
    var openURL = null;
    // If the search bar is available and "Find in this Page" is not selected then use it
    if (superDrag.isSearchEngine())
    {
    openURL = superDrag.getSearchUrl(uri);
    }
    else // Else use default search engine
    {
    var gNavigatorRegionBundle = null ;
    try{
    gNavigatorRegionBundle= document.getElementById("bundle_browser_region");
    }
    catch(e){}
    if(!gNavigatorRegionBundle)
    {
    try{
    gNavigatorRegionBundle= document.getElementById("bundle_navigator_region");
    }
    catch(e){}

    }


    var fallbackDefaultSearchURL = gNavigatorRegionBundle.getString("fallbackDefaultSearchURL");

    var defaultSearchURL = null;
    try
    {
    defaultSearchURL = gPrefService.getComplexValue('browser.search.defaulturl', Components.interfaces.nsIPrefLocalizedString).data;
    }
    catch (err)
    {
    throw("browser.search.defaulturl can't be queried from chrome://browser-region/locale/region.properties.");
    }

    if (!defaultSearchURL)
    defaultSearchURL = fallbackDefaultSearchURL;

    if(!defaultSearchURL)
    break;

    openURL = defaultSearchURL + encodeURIComponent(uri);
    }

    var newTab = getBrowser().addTab(openURL);
    //if (!gPrefService.getBoolPref("browser.tabs.loadInBackground"))

    var LoadSearchinFg = true;
    try
    {
    LoadSearchinFg = prefService.getBoolPref('loadsearchinfg');
    }
    catch (err) {}
    if(LoadSearchinFg)
    getBrowser().selectedTab = newTab;

    }

    }
    break;
    case "navigator:view-source":
    viewSource(myUrl);
    break;
    }

    // keep the event from being handled by the dragDrop listeners
    // built-in to gecko if they happen to be above us.
    aEvent.preventDefault();
    aEvent.preventBubble();
    this.OverAlready = false;

    },


    //the following function provided by NetOne makes dropping on current dragged image possible, hence no need
    //to drag an image out of itself to start download anymore.
    checkCanDrop: function (aEvent, aDragDropObserver)
    {
    if (!this.mDragSession)
    this.mDragSession = this.mDragService.getCurrentSession();
    if (!this.mDragSession)
    return false;
    /* The next line of code is used to allow dropping on the source node if the source node is an IMG element */

    this.mDragSession.canDrop = this.mDragSession.sourceNode != aEvent.target;

    if(this.mDragSession.sourceNode)
    if( this.mDragSession.sourceNode.nodeName == 'IMG')
    this.mDragSession.canDrop = true;


    if ("canDrop" in aDragDropObserver)
    this.mDragSession.canDrop &= aDragDropObserver.canDrop(aEvent, this.mDragSession);
    return true;
    },

    getDownloadFolder: function(){
    var prefService = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefService).getBranch('superdrag.settings.');
    const nsILocalFile = Components.interfaces.nsILocalFile;
    var dir = null;
    try {
    dir = prefService.getCharPref("defaultfolder");
    }
    catch (e) { }

    if(dir == null||dir.length==0)
    {
    function getDesktopKey()
    {
    return "DeskV";
    return "Home";
    }
    var fileLocator = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties);
    dir = fileLocator.get(getDesktopKey(), Components.interfaces.nsILocalFile);
    return dir.path;
    }
    return dir;
    },

    saveImage: function(src)
    {

    // alert("get into saveImage");
    var fileName = src.substring(src.lastIndexOf('/')+1, src.length);
    var fileSaving = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
    var path = superDrag.getDownloadFolder() + "\";
    fileSaving.initWithPath(path);

    // alert("get out saveImage");

    if (!fileSaving.exists())
    {
    alert("The download folder does not exist!");
    return;
    }

    fileSaving.initWithPath(path + fileName);
    var i = 1;
    var newFileName=fileName;

    while (fileSaving.exists())
    {
    if (fileName.indexOf('.') != -1)
    {
    var ext = fileName.substring(fileName.lastIndexOf('.'), fileName.length);
    var file = fileName.substring(0, fileName.length - ext.length);
    newFileName = file + "-" + i + ext;

    fileSaving.initWithPath(path + newFileName);
    }
    else
    fileSaving.initWithPath(path + fileName + i);
    i++;
    }

    var cacheKey = Components.classes['@mozilla.org/supports-string;1'].createInstance(Components.interfaces.nsISupportsString);
    cacheKey.data = src;

    var urifix = Components.classes['@mozilla.org/docshell/urifixup;1'].getService(Components.interfaces.nsIURIFixup);
    var uri = urifix.createFixupURI(src, 0);
    var hosturi = null;

    if (uri.host.length > 0) {
    hosturi = urifix.createFixupURI(uri.host, 0);
    }


    var persist = Components.classes['@mozilla.org/embedding/browser/nsWebBrowserPersist;1'].createInstance(Components.interfaces.nsIWebBrowserPersist);
    persist.persistFlags = Components.interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_FROM_CACHE | Components.interfaces.nsIWebBrowserPersist.PERSIST_FLAGS_CLEANUP_ON_FAILURE;
    persist.saveURI(uri, cacheKey, hosturi, null, null, fileSaving);

    function StatusLabel()
    {
    var SaveLabel="The image has been saved to "+ path + " as " + newFileName ;
    document.getElementById('statusbar-display').label = SaveLabel;
    }
    setTimeout(StatusLabel,100);
    },


    //isSearchEngine() is borrowed from extension "Web Search Plus" created by Pike
    isSearchEngine: function()
    {
    var searchBar = document.getElementById('searchbar');
    if (!searchBar) return false;
    if (window.navigator.productSub && window.navigator.productSub < 20030807)
    // browser.js version 1.216 or less
    {
    return (searchBar.hasAttribute('searchmode'));
    }
    else if (window.navigator.productSub && window.navigator.productSub < 20031022)
    // browser.js version 1.217 to 1.240
    {
    return (searchBar.getAttribute('searchmode') != '__PhoenixFindInPage');
    }
    else
    // browser.js version 1.241 and above
    {
    return (searchBar.getAttribute('searchengine') != '__PhoenixFindInPage');
    }
    },

    //getSearchUrl() is borrowed from extension "Web Search Plus" created by Pike
    getSearchUrl: function(searchStr)
    {
    var searchBar = document.getElementById('searchbar');
    if (!searchBar) return null;
    var searchEngine = null;
    if (window.navigator.productSub && window.navigator.productSub < 20031022)
    // browser.js version 1.240 and below
    {
    searchEngine = searchBar.getAttribute('searchmode');
    }
    else
    // browser.js version 1.241 and above
    {
    searchEngine = searchBar.getAttribute('searchengine');
    }
    if (!searchEngine) return null;
    var iSearchService = Components.classes['@mozilla.org/rdf/datasource;1?name=internetsearch'].getService(Components.interfaces.nsIInternetSearchService);
    return iSearchService.GetInternetSearchURL(searchEngine, encodeURIComponent(searchStr), 0, 0, {value: 0});
    },


    getSupportedFlavours: function ()
    {
    var flavourSet = new FlavourSet();
    flavourSet.appendFlavour("text/x-moz-url");
    flavourSet.appendFlavour("text/unicode");
    flavourSet.appendFlavour("application/x-moz-file", "nsIFile");
    return flavourSet;
    }

    };

    window.addEventListener('load', function() {superDrag.onLoad();}, false);


    (Kept small to save the format here, copy and paste to read it.)

    And just to make this clear:
    I know how to pack and unpack .xpis and .jars...:wink:
zeniko wrote: If you never ever want images to be saved in the temporary folder, simply deactivate the option to download images when dragging them.
This had the effect you 'promised' before: The image i only saved in the %tmp% folder, but not in the selected folder.

So:
Is there a way to avoid saving the image in the temp-folder, but do save it in the selected folder?

Thanks!
Bazon
Locked