From 0974e31da1d2066f5260725445dfbeb14e377245 Mon Sep 17 00:00:00 2001 From: damencho Date: Sat, 9 Apr 2016 12:35:54 -0500 Subject: [PATCH] Updates connection quality popover only if its visible or about to be visible. --- modules/UI/videolayout/ConnectionIndicator.js | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/modules/UI/videolayout/ConnectionIndicator.js b/modules/UI/videolayout/ConnectionIndicator.js index 589f15ffe..fc39427e6 100644 --- a/modules/UI/videolayout/ConnectionIndicator.js +++ b/modules/UI/videolayout/ConnectionIndicator.js @@ -270,6 +270,17 @@ ConnectionIndicator.prototype.create = function () { APP.translation.translateString("connectionindicator.na") + "", skin: "black"}); + // override popover show method to make sure we will update the content + // before showing the popover + var origShowFunc = this.popover.show; + this.popover.show = function () { + // update content by forcing it, to finish even if popover + // is not visible + this.updatePopoverData(true); + // call the original show, passing its actual this + origShowFunc.call(this.popover); + }.bind(this); + this.emptyIcon = this.connectionIndicatorContainer.appendChild( createIcon(["connection", "connection_empty"])); this.fullIcon = this.connectionIndicatorContainer.appendChild( @@ -335,13 +346,18 @@ ConnectionIndicator.prototype.updateResolution = function (resolution) { }; /** - * Updates the content of the popover + * Updates the content of the popover if its visible + * @param force to work even if popover is not visible */ -ConnectionIndicator.prototype.updatePopoverData = function () { - this.popover.updateContent( - `
${this.generateText()}
` - ); - APP.translation.translateElement($(".connection_info")); +ConnectionIndicator.prototype.updatePopoverData = function (force) { + // generate content, translate it and add it to document only if + // popover is visible or we force to do so. + if(this.popover.popoverShown || force) { + this.popover.updateContent( + `
${this.generateText()}
` + ); + APP.translation.translateElement($(".connection_info")); + } }; /**