Revert "Add widget.destroy() function (#7468)"

See discussion at https://github.com/Jermolene/TiddlyWiki5/pull/7468#issuecomment-1645753857
This commit is contained in:
Jeremy Ruston 2023-07-22 11:41:36 +01:00
parent fd8b8f62da
commit 160cc0e9a9
2 changed files with 11 additions and 31 deletions

View File

@ -719,46 +719,23 @@ Widget.prototype.findFirstDomNode = function() {
};
/*
Entry into destroy procedure
*/
Widget.prototype.destroyChildren = function() {
$tw.utils.each(this.children,function(childWidget) {
childWidget.destroy();
});
};
/*
Legacy entry into destroy procedure
Remove any DOM nodes created by this widget or its children
*/
Widget.prototype.removeChildDomNodes = function() {
this.destroy();
};
/*
Default destroy
*/
Widget.prototype.destroy = function() {
// call children to remove their resources
this.destroyChildren();
// remove our resources
this.children = [];
this.removeLocalDomNodes();
};
/*
Remove any DOM nodes created by this widget
*/
Widget.prototype.removeLocalDomNodes = function() {
// If this widget has directly created DOM nodes, delete them and exit.
// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case
if(this.domNodes.length > 0) {
$tw.utils.each(this.domNodes,function(domNode) {
if(domNode.parentNode) {
domNode.parentNode.removeChild(domNode);
}
domNode.parentNode.removeChild(domNode);
});
this.domNodes = [];
} else {
// Otherwise, ask the child widgets to delete their DOM nodes
$tw.utils.each(this.children,function(childWidget) {
childWidget.removeChildDomNodes();
});
}
};
/*
Invoke the action widgets that are descendents of the current widget.
*/

View File

@ -9,6 +9,9 @@ type: text/vnd.tiddlywiki
! Overview of v5.3.1
! Reversions of v5.3.0 Changes
* Reverted adding the `widget.destroy()` method because of performance concerns (see https://github.com/Jermolene/TiddlyWiki5/pull/7468)
! Plugin Improvements