1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-06-30 17:23:16 +00:00

A better fix for refreshing nested macros

This commit is contained in:
Jeremy Ruston 2012-06-19 16:56:55 +01:00
parent 2282a825ec
commit 9d39e9a5f1
2 changed files with 9 additions and 5 deletions

View File

@ -54,12 +54,12 @@ exports.executeMacro = function() {
if(value === undefined) {
return $tw.Tree.Text("");
} else {
var link = $tw.Tree.Element("span",{},[$tw.Tree.Macro("link",{
var link = $tw.Tree.Macro("link",{
srcParams: {to: value},
content: [$tw.Tree.Text(value)],
isBlock: this.isBlock,
wiki: this.wiki
})]);
});
link.execute(parents,this.tiddlerTitle);
return link;
}

View File

@ -208,9 +208,13 @@ Macro.prototype.refreshInDom = function(changes) {
if(this.dependencies.hasChanged(changes,this.tiddlerTitle)) {
// Re-execute the macro if so
// Macros can only auto-refresh if their immediate child is a DOM node
var parentDomNode = this.child.domNode.parentNode,
insertBefore = this.child.domNode.nextSibling;
parentDomNode.removeChild(this.child.domNode);
var child = this.child;
while(!child.domNode && child.child) {
child = child.child;
}
var parentDomNode = child.domNode.parentNode,
insertBefore = child.domNode.nextSibling;
parentDomNode.removeChild(child.domNode);
this.execute(this.parents,this.tiddlerTitle);
this.renderInDom(parentDomNode,insertBefore);
} else {