summaryrefslogtreecommitdiff
path: root/morphic.js
diff options
context:
space:
mode:
authorjmoenig <jens@moenig.org>2013-06-28 20:42:28 +0200
committerjmoenig <jens@moenig.org>2013-06-28 20:42:28 +0200
commit09e3a296c25a73b4b4a21e1d0a2d9f6ce673f01f (patch)
tree46c0a7d75e5029c86ef6acf35e2064d6de1dfa39 /morphic.js
parentb8c48040a26befd6a4670dbc89f5e91ef51210ea (diff)
downloadsnap-09e3a296c25a73b4b4a21e1d0a2d9f6ce673f01f.tar.gz
snap-09e3a296c25a73b4b4a21e1d0a2d9f6ce673f01f.zip
improved importing costumes
by dragging in pictures from other web pages, which now allows for dragging links to pictures as well
Diffstat (limited to 'morphic.js')
-rw-r--r--morphic.js22
1 files changed, 21 insertions, 1 deletions
diff --git a/morphic.js b/morphic.js
index b154dc8..1a20946 100644
--- a/morphic.js
+++ b/morphic.js
@@ -1035,7 +1035,7 @@
/*global window, HTMLCanvasElement, getMinimumFontHeight, FileReader, Audio,
FileList, getBlurredShadowSupport*/
-var morphicVersion = '2013-June-21';
+var morphicVersion = '2013-June-28';
var modules = {}; // keep track of additional loaded modules
var useBlurredShadows = getBlurredShadowSupport(); // check for Chrome-bug
@@ -9708,6 +9708,8 @@ HandMorph.prototype.processDrop = function (event) {
var files = event instanceof FileList ? event
: event.target.files || event.dataTransfer.files,
file,
+ url = event.dataTransfer ?
+ event.dataTransfer.getData('URL') : null,
txt = event.dataTransfer ?
event.dataTransfer.getData('Text/HTML') : null,
src,
@@ -9818,6 +9820,24 @@ HandMorph.prototype.processDrop = function (event) {
readBinary(file);
}
}
+ } else if (url) {
+ if (
+ contains(
+ ['gif', 'png', 'jpg', 'jpeg', 'bmp'],
+ url.slice(url.lastIndexOf('.') + 1).toLowerCase()
+ )
+ ) {
+ while (!target.droppedImage) {
+ target = target.parent;
+ }
+ img = new Image();
+ img.onload = function () {
+ canvas = newCanvas(new Point(img.width, img.height));
+ canvas.getContext('2d').drawImage(img, 0, 0);
+ target.droppedImage(canvas);
+ };
+ img.src = url;
+ }
} else if (txt) {
while (!target.droppedImage) {
target = target.parent;