From 9fa9ec21462b8c88575a178b5dc75c610b4ae438 Mon Sep 17 00:00:00 2001 From: jmoenig Date: Sun, 12 Apr 2020 16:31:11 +0200 Subject: [PATCH] enable toggling between list- and table view inside a watcher cell --- src/lists.js | 8 ++++++-- src/tables.js | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/lists.js b/src/lists.js index 5570bf9c..d773b9d3 100644 --- a/src/lists.js +++ b/src/lists.js @@ -62,7 +62,7 @@ CellMorph, ArrowMorph, MenuMorph, snapEquals, Morph, isNil, localize, isString, MorphicPreferences, TableDialogMorph, SpriteBubbleMorph, SpeechBubbleMorph, TableFrameMorph, TableMorph, Variable, isSnapObject, Costume, contains*/ -modules.lists = '2020-April-11'; +modules.lists = '2020-April-12'; var List; var ListWatcherMorph; @@ -958,7 +958,11 @@ ListWatcherMorph.prototype.showTableView = function () { view.contents = new TableFrameMorph(new TableMorph(this.list, 10)); view.contents.expand(this.extent()); } else { // watcher cell - view.drawNew(true, 'table'); + view.changed(); + view.contentsMorph.destroy(); + view.contentsMorph = new TableFrameMorph(new TableMorph(this.list, 10)); + view.add(view.contentsMorph); + view.contentsMorph.setPosition(this.position()); view.contentsMorph.expand(this.extent()); } view.fixLayout(); diff --git a/src/tables.js b/src/tables.js index 924a0ad7..7fe5d6cb 100644 --- a/src/tables.js +++ b/src/tables.js @@ -70,7 +70,7 @@ SpriteMorph, Context, Costume, BlockEditorMorph, SymbolMorph, List, SyntaxElementMorph, MenuMorph, SpriteBubbleMorph, SpeechBubbleMorph, Sound, CellMorph, ListWatcherMorph, isNil, BoxMorph, Variable, isSnapObject*/ -modules.tables = '2020-April-11'; +modules.tables = '2020-April-12'; var Table; var TableCellMorph; @@ -1089,7 +1089,11 @@ TableMorph.prototype.showListView = function () { view.contents.step = view.contents.update; view.contents.expand(this.extent()); } else { // watcher cell - view.drawNew(true); + view.changed(); + view.contentsMorph.destroy(); + view.contentsMorph = new ListWatcherMorph(this.table); + view.add(view.contentsMorph); + view.contentsMorph.setPosition(this.position()); view.contentsMorph.expand(this.extent()); } view.fixLayout();