diff --git a/bigbluebutton-html5/imports/ui/components/layout/layout-manager.jsx b/bigbluebutton-html5/imports/ui/components/layout/layout-manager.jsx index 938b7dde7df4c3b894d19734278d4ddf402c2f9b..0d4fef1f941f0eb7425c2bc43f6577f76c8a1d4a 100644 --- a/bigbluebutton-html5/imports/ui/components/layout/layout-manager.jsx +++ b/bigbluebutton-html5/imports/ui/components/layout/layout-manager.jsx @@ -184,6 +184,14 @@ class LayoutManager extends Component { }, }, ); + layoutContextDispatch( + { + type: 'setCaptionsSize', + value: { + width: layoutSizes.captionsSize.width, + }, + }, + ); layoutContextDispatch( { type: 'setBreakoutRoomSize', @@ -234,6 +242,9 @@ class LayoutManager extends Component { noteSize: { width: layoutSizes.noteSize.width, }, + captionsSize: { + width: layoutSizes.captionsSize.width, + }, breakoutRoomSize: { width: layoutSizes.breakoutRoomSize.width, }, @@ -295,6 +306,7 @@ class LayoutManager extends Component { chatSize: chatSizeContext, pollSize: pollSizeContext, noteSize: noteSizeContext, + captionsSize: captionsSizeContext, breakoutRoomSize: breakoutRoomSizeContext, } = layoutContextState; const openPanel = Session.get('openPanel'); @@ -304,6 +316,7 @@ class LayoutManager extends Component { let storageChatWidth; let storagePollWidth; let storageNoteWidth; + let storageCaptionsWidth; let storageBreakoutRoomWidth; if (storageLData) { @@ -311,6 +324,7 @@ class LayoutManager extends Component { storageChatWidth = storageLData.chatSize?.width; storagePollWidth = storageLData.pollSize?.width; storageNoteWidth = storageLData.noteSize?.width; + storageCaptionsWidth = storageLData.captionsSize?.width; storageBreakoutRoomWidth = storageLData.breakoutRoomSize?.width; } @@ -318,6 +332,7 @@ class LayoutManager extends Component { let newChatSize; let newPollSize; let newNoteSize; + let newCaptionsSize; let newBreakoutRoomSize; if (panelChanged && userListSizeContext.width !== 0) { @@ -368,6 +383,18 @@ class LayoutManager extends Component { }; } + if (panelChanged && captionsSizeContext.width !== 0) { + newCaptionsSize = captionsSizeContext; + } else if (!storageCaptionsWidth) { + newCaptionsSize = { + width: min(max((windowWidth() * 0.2), NOTE_MIN_WIDTH), NOTE_MAX_WIDTH), + }; + } else { + newCaptionsSize = { + width: storageCaptionsWidth, + }; + } + if (panelChanged && breakoutRoomSizeContext.width !== 0) { newBreakoutRoomSize = breakoutRoomSizeContext; } else if (!storageBreakoutRoomWidth) { @@ -394,6 +421,9 @@ class LayoutManager extends Component { newNoteSize = { width: 0, }; + newCaptionsSize = { + width: 0, + }; break; } case 'poll': { @@ -406,6 +436,9 @@ class LayoutManager extends Component { newBreakoutRoomSize = { width: 0, }; + newCaptionsSize = { + width: 0, + }; break; } case 'note': { @@ -418,6 +451,24 @@ class LayoutManager extends Component { newBreakoutRoomSize = { width: 0, }; + newCaptionsSize = { + width: 0, + }; + break; + } + case 'captions': { + newChatSize = { + width: 0, + }; + newPollSize = { + width: 0, + }; + newBreakoutRoomSize = { + width: 0, + }; + newNoteSize = { + width: 0, + }; break; } case 'chat': { @@ -430,6 +481,9 @@ class LayoutManager extends Component { newNoteSize = { width: 0, }; + newCaptionsSize = { + width: 0, + }; break; } case 'breakoutroom': { @@ -442,6 +496,9 @@ class LayoutManager extends Component { newNoteSize = { width: 0, }; + newCaptionsSize = { + width: 0, + }; break; } case '': { @@ -460,6 +517,9 @@ class LayoutManager extends Component { newNoteSize = { width: 0, }; + newCaptionsSize = { + width: 0, + }; break; } default: { @@ -472,6 +532,7 @@ class LayoutManager extends Component { newChatSize, newPollSize, newNoteSize, + newCaptionsSize, newBreakoutRoomSize, }; } @@ -600,6 +661,7 @@ class LayoutManager extends Component { newChatSize, newPollSize, newNoteSize, + newCaptionsSize, newBreakoutRoomSize, } = panelsSize; @@ -615,6 +677,8 @@ class LayoutManager extends Component { secondPanel = newPollSize; } else if (newNoteSize.width > 0) { secondPanel = newNoteSize; + } else if (newCaptionsSize.width > 0) { + secondPanel = newCaptionsSize; } else if (newBreakoutRoomSize.width > 0) { secondPanel = newBreakoutRoomSize; } @@ -667,6 +731,7 @@ class LayoutManager extends Component { chatSize: newChatSize, pollSize: newPollSize, noteSize: newNoteSize, + captionsSize: newCaptionsSize, breakoutRoomSize: newBreakoutRoomSize, webcamsAreaSize: newWebcamsAreaSize, presentationAreaSize: newPresentationAreaSize,