summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmoenig <jens@moenig.org>2014-10-08 11:21:49 +0200
committerjmoenig <jens@moenig.org>2014-10-08 11:21:49 +0200
commit5f3279990be3478fde79b94f7dbd5d7da80df84b (patch)
treead39e4c2e3817d0543e3688a276cf392a3dbcacc
parent2ae675132a52b8fdb3bd52e80db858500de9f265 (diff)
downloadsnap-5f3279990be3478fde79b94f7dbd5d7da80df84b.tar.gz
snap-5f3279990be3478fde79b94f7dbd5d7da80df84b.zip
fixed #608, #610
-rwxr-xr-xhistory.txt4
-rw-r--r--objects.js48
2 files changed, 34 insertions, 18 deletions
diff --git a/history.txt b/history.txt
index 5999536..28116b9 100755
--- a/history.txt
+++ b/history.txt
@@ -2305,3 +2305,7 @@ ______
141006
------
* GUI, Objects: fixed #604. Thanks, @Gubolin!
+
+141008
+------
+* Objects: fixed #608, #610
diff --git a/objects.js b/objects.js
index 17450dd..4be213a 100644
--- a/objects.js
+++ b/objects.js
@@ -125,7 +125,7 @@ PrototypeHatBlockMorph*/
// Global stuff ////////////////////////////////////////////////////////
-modules.objects = '2014-October-06';
+modules.objects = '2014-October-08';
var SpriteMorph;
var StageMorph;
@@ -4378,25 +4378,37 @@ StageMorph.prototype.drawOn = function (aCanvas, aRect) {
);
// pen trails
- ws = Math.floor(
- Math.min(w / this.scale, this.image.width * this.scale)
- );
- hs = Math.floor(
- Math.min(h / this.scale, this.image.height * this.scale)
- );
+ ws = w / this.scale;
+ hs = h / this.scale;
context.save();
context.scale(this.scale, this.scale);
- context.drawImage(
- this.penTrails(),
- src.left() / this.scale,
- src.top() / this.scale,
- ws,
- hs,
- area.left() / this.scale,
- area.top() / this.scale,
- ws,
- hs
- );
+ try {
+ context.drawImage(
+ this.penTrails(),
+ src.left() / this.scale,
+ src.top() / this.scale,
+ ws,
+ hs,
+ area.left() / this.scale,
+ area.top() / this.scale,
+ ws,
+ hs
+ );
+ } catch (err) { // sometimes triggered only by Firefox
+ // console.log(err);
+ context.restore();
+ context.drawImage(
+ this.penTrails(),
+ 0,
+ 0,
+ this.dimensions.x,
+ this.dimensions.y,
+ this.left(),
+ this.top(),
+ this.dimensions.x * this.scale,
+ this.dimensions.y * this.scale
+ );
+ }
context.restore();
}
};