diff options
| -rwxr-xr-x | history.txt | 4 | ||||
| -rw-r--r-- | morphic.js | 15 | ||||
| -rw-r--r-- | 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) @@ -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 @@ -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; |
