diff --git a/src/js/model.js b/src/js/model.js index 9492b674..57a35ea3 100644 --- a/src/js/model.js +++ b/src/js/model.js @@ -144,3 +144,8 @@ Model.prototype.resize = function () { this.render(); }; + +Model.prototype.dispose = function () { + this.renderer.forceContextLoss(); + this.renderer.dispose(); +}; diff --git a/src/js/tabs/pid_tuning.js b/src/js/tabs/pid_tuning.js index 71b7a74c..2b6909f4 100644 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -1729,6 +1729,7 @@ TABS.pid_tuning.cleanup = function (callback) { if (self.model) { $(window).off('resize', $.proxy(self.model.resize, self.model)); + self.model.dispose(); } $(window).off('resize', $.proxy(this.updateRatesLabels, this)); diff --git a/src/js/tabs/receiver.js b/src/js/tabs/receiver.js index 776e757b..27f94b67 100644 --- a/src/js/tabs/receiver.js +++ b/src/js/tabs/receiver.js @@ -605,6 +605,7 @@ TABS.receiver.cleanup = function (callback) { $(window).off('resize', this.resize); if (this.model) { $(window).off('resize', $.proxy(this.model.resize, this.model)); + this.model.dispose(); } this.keepRendering = false; diff --git a/src/js/tabs/setup.js b/src/js/tabs/setup.js index 7a367276..b998476a 100644 --- a/src/js/tabs/setup.js +++ b/src/js/tabs/setup.js @@ -341,6 +341,7 @@ TABS.setup.renderModel = function () { TABS.setup.cleanup = function (callback) { if (this.model) { $(window).off('resize', $.proxy(this.model.resize, this.model)); + this.model.dispose(); } if (callback) callback();