diff --git a/HISTORY.md b/HISTORY.md
index 8e554a64..724d6a25 100755
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -11,9 +11,13 @@
* changed zebra-coloring for yellow custom block prototypes (in the block editor) so the hat block changes the shade, not the prototype
* improved layout and rendering of (+) buttons in custom block prototypes
* **Notable Fixes:**
+ * displaying a table containing the stage no longer crashes the page
* correct identities when combining the items of an empty list with + / * / min / max
-### 2021-03-03
+### 2021-03-05
+* tables, objects: displaying a table containing the stage no longer crashes the page
+
+### 2021-03-04
* gui: added trash button for undeleting sprites
* gui: accept drops of sprites and sprite-icons in trash button
* gui: animate undeleted sprites to glide back onstage
diff --git a/snap.html b/snap.html
index e7daeee0..13d848a4 100755
--- a/snap.html
+++ b/snap.html
@@ -10,12 +10,12 @@
-
+
-
+
diff --git a/src/objects.js b/src/objects.js
index ca027b83..7a01c8c7 100644
--- a/src/objects.js
+++ b/src/objects.js
@@ -84,7 +84,7 @@ BlockEditorMorph, BlockDialogMorph, PrototypeHatBlockMorph, BooleanSlotMorph,
localize, TableMorph, TableFrameMorph, normalizeCanvas, VectorPaintEditorMorph,
AlignmentMorph, Process, WorldMap, copyCanvas, useBlurredShadows*/
-modules.objects = '2021-March-02';
+modules.objects = '2021-March-05';
var SpriteMorph;
var StageMorph;
@@ -9080,18 +9080,19 @@ StageMorph.prototype.fullImage = Morph.prototype.fullImage;
// StageMorph thumbnail
-StageMorph.prototype.thumbnail = function (extentPoint, recycleMe) {
+StageMorph.prototype.thumbnail = function (extentPoint, recycleMe, noWatchers) {
// answer a new Canvas of extentPoint dimensions containing
// my thumbnail representation keeping the originial aspect ratio
// a "recycleMe canvas can be passed for re-use
- return this.fancyThumbnail(extentPoint, null, false, recycleMe);
+ return this.fancyThumbnail(extentPoint, null, false, recycleMe, noWatchers);
};
StageMorph.prototype.fancyThumbnail = function (
extentPoint,
excludedSprite,
nonRetina,
- recycleMe
+ recycleMe,
+ noWatchers
) {
var src = this.getImage(),
scale = Math.min(
@@ -9130,7 +9131,7 @@ StageMorph.prototype.fancyThumbnail = function (
ctx.restore();
}
this.children.forEach(morph => {
- if (morph.isVisible && (morph !== excludedSprite)) {
+ if ((isSnapObject(morph) || !noWatchers) && morph.isVisible && (morph !== excludedSprite)) {
fb = morph.fullBounds();
fimg = morph.fullImage();
if (fimg.width && fimg.height) {
diff --git a/src/tables.js b/src/tables.js
index 6f93cbed..095885c0 100644
--- a/src/tables.js
+++ b/src/tables.js
@@ -7,7 +7,7 @@
written by Jens Mönig
jens@moenig.org
- Copyright (C) 2020 by Jens Mönig
+ Copyright (C) 2021 by Jens Mönig
This file is part of Snap!.
@@ -70,7 +70,7 @@ SpriteMorph, Context, Costume, BlockEditorMorph, SymbolMorph, IDE_Morph, Sound,
SyntaxElementMorph, MenuMorph, SpriteBubbleMorph, SpeechBubbleMorph, CellMorph,
ListWatcherMorph, BoxMorph, Variable, isSnapObject, useBlurredShadows*/
-modules.tables = '2020-October-06';
+modules.tables = '2021-March-05';
var Table;
var TableCellMorph;
@@ -381,7 +381,7 @@ TableCellMorph.prototype.render = function (ctx) {
TableCellMorph.prototype.dataRepresentation = function (dta) {
if (dta instanceof Morph) {
if (isSnapObject(dta)) {
- return dta.thumbnail(new Point(40, 40));
+ return dta.thumbnail(new Point(40, 40), null, true); // no watchers
} else {
return dta.fullImage();
}