From f2c9b8b7a5dcfc7affcb8fbe225e1981f44051a6 Mon Sep 17 00:00:00 2001 From: paweldomas Date: Tue, 26 Apr 2016 15:42:18 -0500 Subject: [PATCH] Fix issue updating large video 'src' while on stage --- modules/UI/videolayout/LargeVideo.js | 10 +++++++++- modules/UI/videolayout/VideoLayout.js | 6 +++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/modules/UI/videolayout/LargeVideo.js b/modules/UI/videolayout/LargeVideo.js index dc4ed19cf..351a2b0f3 100644 --- a/modules/UI/videolayout/LargeVideo.js +++ b/modules/UI/videolayout/LargeVideo.js @@ -446,7 +446,15 @@ export default class LargeVideoManager { let container = this.getContainer(this.state); - container.hide().then(() => { + // Include hide()/fadeOut only if we're switching between users + let preUpdate; + if (this.newStreamData.id != this.id) { + preUpdate = container.hide(); + } else { + preUpdate = Promise.resolve(); + } + + preUpdate.then(() => { let {id, stream, videoType, resolve} = this.newStreamData; this.newStreamData = null; diff --git a/modules/UI/videolayout/VideoLayout.js b/modules/UI/videolayout/VideoLayout.js index 7c94da9db..d31674e6f 100644 --- a/modules/UI/videolayout/VideoLayout.js +++ b/modules/UI/videolayout/VideoLayout.js @@ -404,7 +404,11 @@ var VideoLayout = { this.isLargeContainerTypeVisible(VIDEO_CONTAINER_TYPE)) || pinnedId === resourceJid || (!pinnedId && resourceJid && - currentDominantSpeaker === resourceJid)) { + currentDominantSpeaker === resourceJid) || + /* Playback started while we're on the stage - may need to update + video source with the new stream */ + this.isCurrentlyOnLarge(resourceJid)) { + this.updateLargeVideo(resourceJid, true); } },