aboutsummaryrefslogtreecommitdiff
path: root/node_modules/montage/ui/component.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/montage/ui/component.js')
-rwxr-xr-xnode_modules/montage/ui/component.js22
1 files changed, 15 insertions, 7 deletions
diff --git a/node_modules/montage/ui/component.js b/node_modules/montage/ui/component.js
index 8a8f5739..30119815 100755
--- a/node_modules/montage/ui/component.js
+++ b/node_modules/montage/ui/component.js
@@ -30,7 +30,7 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon
30 @default null 30 @default null
31 */ 31 */
32 delegate: { 32 delegate: {
33 enumerable: false, 33 serializable: "reference",
34 value: null 34 value: null
35 }, 35 },
36 36
@@ -538,11 +538,19 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon
538 * @function 538 * @function
539 */ 539 */
540 cleanupDeletedComponentTree: { 540 cleanupDeletedComponentTree: {
541 value: function() { 541 value: function(deleteBindings) {
542 Object.deleteBindings(this); 542 // Deleting bindings in all cases was causing the symptoms expressed in gh-603
543 // Until we have a more granular way we shouldn't do this,
544 // the deleteBindings parameter is a short term fix.
545 if (deleteBindings) {
546 Object.deleteBindings(this);
547 }
543 this.needsDraw = false; 548 this.needsDraw = false;
544 this.traverseComponentTree(function(component) { 549 this.traverseComponentTree(function(component) {
545 Object.deleteBindings(component); 550 // See above comment
551 if (deleteBindings) {
552 Object.deleteBindings(component);
553 }
546 component.needsDraw = false; 554 component.needsDraw = false;
547 }); 555 });
548 } 556 }
@@ -631,7 +639,7 @@ var Component = exports.Component = Montage.create(Montage,/** @lends module:mon
631 if (this._element) { 639 if (this._element) {
632 this.originalContent = Array.prototype.slice.call(this._element.childNodes, 0); 640 this.originalContent = Array.prototype.slice.call(this._element.childNodes, 0);
633 } 641 }
634 if (!("identifier" in this)) { 642 if (! this.hasOwnProperty("identifier")) {
635 this.identifier = Montage.getInfoForObject(this).label; 643 this.identifier = Montage.getInfoForObject(this).label;
636 } 644 }
637 } 645 }
@@ -1772,7 +1780,7 @@ var rootComponent = Montage.create(Component, /** @lends module:montage/ui/compo
1772 enumerable: false, 1780 enumerable: false,
1773 value: 0 1781 value: 0
1774 }, 1782 },
1775 1783
1776 drawTree: { 1784 drawTree: {
1777 value: function drawTree() { 1785 value: function drawTree() {
1778 if (this.requestedAnimationFrame === null) { // 0 is a valid requestedAnimationFrame value 1786 if (this.requestedAnimationFrame === null) { // 0 is a valid requestedAnimationFrame value
@@ -1826,7 +1834,7 @@ var rootComponent = Montage.create(Component, /** @lends module:montage/ui/compo
1826 // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating 1834 // http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating
1827 var currentDate = Date.now(), 1835 var currentDate = Date.now(),
1828 miliseconds = 17 - currentDate + this._previousDrawDate; 1836 miliseconds = 17 - currentDate + this._previousDrawDate;
1829 1837
1830 if (miliseconds < 0) { 1838 if (miliseconds < 0) {
1831 miliseconds = 0; 1839 miliseconds = 0;
1832 } 1840 }