From 59a39077b80d35fdb47ea67b4d87f1ab9a67807f Mon Sep 17 00:00:00 2001 From: jmoenig Date: Thu, 12 Dec 2013 14:55:40 +0100 Subject: fixed #277, #279 (blitting null-canvasses fails) Thanks, Nathan, for the pointer to this! --- history.txt | 4 ++++ morphic.js | 15 +++++++++------ objects.js | 28 ++++++++++++++++------------ 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/history.txt b/history.txt index 62dadb2..e1bd47d 100755 --- a/history.txt +++ b/history.txt @@ -2035,3 +2035,7 @@ ______ 131211 ------ * Threads: accept lists as inputs to the green (text) LENGTH OF reporter + +131212 +------ +* Objects, Morphic: fixed #277, #279 (blitting null-canvasses fails) diff --git a/morphic.js b/morphic.js index 7305785..f6e55e3 100644 --- a/morphic.js +++ b/morphic.js @@ -1035,7 +1035,7 @@ /*global window, HTMLCanvasElement, getMinimumFontHeight, FileReader, Audio, FileList, getBlurredShadowSupport*/ -var morphicVersion = '2013-November-22'; +var morphicVersion = '2013-December-12'; var modules = {}; // keep track of additional loaded modules var useBlurredShadows = getBlurredShadowSupport(); // check for Chrome-bug @@ -2735,11 +2735,13 @@ Morph.prototype.fullImage = function () { this.allChildren().forEach(function (morph) { if (morph.isVisible) { ctx.globalAlpha = morph.alpha; - ctx.drawImage( - morph.image, - morph.bounds.origin.x - fb.origin.x, - morph.bounds.origin.y - fb.origin.y - ); + if (morph.extent().gt(new Point())) { + ctx.drawImage( + morph.image, + morph.bounds.origin.x - fb.origin.x, + morph.bounds.origin.y - fb.origin.y + ); + } } }); return img; @@ -4581,6 +4583,7 @@ CursorMorph.prototype.processKeyDown = function (event) { this.keyDownEventUsed = true; break; default: + nop(); // this.inspectKeyEvent(event); } // notify target's parent of key event diff --git a/objects.js b/objects.js index 7f1e7a2..e6cb533 100644 --- a/objects.js +++ b/objects.js @@ -124,7 +124,7 @@ PrototypeHatBlockMorph*/ // Global stuff //////////////////////////////////////////////////////// -modules.objects = '2013-December-04'; +modules.objects = '2013-December-12'; var SpriteMorph; var StageMorph; @@ -3373,12 +3373,14 @@ SpriteMorph.prototype.thumbnail = function (extentPoint) { ctx = trg.getContext('2d'); ctx.save(); - ctx.scale(scale, scale); - ctx.drawImage( - src, - Math.floor(xOffset / scale), - Math.floor(yOffset / scale) - ); + if (scale !== Infinity) { + ctx.scale(scale, scale); + ctx.drawImage( + src, + Math.floor(xOffset / scale), + Math.floor(yOffset / scale) + ); + } return trg; }; @@ -4662,11 +4664,13 @@ StageMorph.prototype.thumbnail = function (extentPoint, excludedSprite) { this.children.forEach(function (morph) { if (morph !== excludedSprite) { fb = morph.fullBounds(); - ctx.drawImage( - morph.fullImage(), - fb.origin.x - myself.bounds.origin.x, - fb.origin.y - myself.bounds.origin.y - ); + if (fb.extent().gt(new Point())) { + ctx.drawImage( + morph.fullImage(), + fb.origin.x - myself.bounds.origin.x, + fb.origin.y - myself.bounds.origin.y + ); + } } }); return trg; -- cgit v1.3.1