Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
68d7f1b
Update component.jsx
hiroshisuga Aug 27, 2025
6a718fd
Update component.jsx
hiroshisuga Aug 27, 2025
aabe8a3
Update component.jsx
hiroshisuga Aug 27, 2025
380ce89
Update container.jsx
hiroshisuga Aug 27, 2025
4976e47
Update service.js
hiroshisuga Aug 27, 2025
c85ff13
Update customLayout.jsx
hiroshisuga Aug 27, 2025
119c461
Update component.jsx
hiroshisuga Aug 27, 2025
1f2aac5
Update component.jsx
hiroshisuga Aug 27, 2025
d35a846
Update container.jsx
hiroshisuga Aug 27, 2025
a799bf3
Update component.jsx
hiroshisuga Aug 27, 2025
bb39212
Update container.jsx
hiroshisuga Aug 27, 2025
86c29be
Update styles.js
hiroshisuga Aug 27, 2025
3d83c88
Update component.jsx
hiroshisuga Aug 27, 2025
44664f4
Update container.jsx
hiroshisuga Aug 27, 2025
7f98dbf
Update hooks.js
hiroshisuga Aug 27, 2025
b7afc8e
Update service.js
hiroshisuga Aug 27, 2025
4fd3b70
Update index.js
hiroshisuga Aug 27, 2025
a14b136
Update settings.yml
hiroshisuga Aug 27, 2025
cb21a9e
Update en.json
hiroshisuga Aug 27, 2025
289941a
Update hooks.js
hiroshisuga Aug 28, 2025
0f193fa
remove mutation observer
hiroshisuga Aug 30, 2025
2cdebe9
Fix resize figure and fullscreen on popup
hiroshisuga Aug 30, 2025
2607ed1
revert getContainerDimensions
hiroshisuga Aug 30, 2025
56d7ecf
Bring back the modification
hiroshisuga Aug 30, 2025
bc18970
Merge pull request #224 from bigbluebutton/v3.0.x-release
hiroshisuga Aug 30, 2025
8d98bfe
Update component.jsx
hiroshisuga Aug 31, 2025
34ce248
Merge pull request #226 from bigbluebutton/v3.0.x-release
hiroshisuga Sep 8, 2025
0a78781
fix the style panel problem
hiroshisuga Sep 10, 2025
7c0fbb0
comment update in hooks.js
hiroshisuga Sep 10, 2025
451f336
Update component.jsx
hiroshisuga Sep 11, 2025
186ad36
Update container.jsx
hiroshisuga Sep 11, 2025
a27ff67
Update component.jsx
hiroshisuga Sep 11, 2025
1753818
Update component.jsx
hiroshisuga Sep 11, 2025
e9efec4
Merge pull request #227 from hiroshisuga/dev3.0.14_suppressNotification
hiroshisuga Sep 11, 2025
93d5da1
Update comment on component.jsx
hiroshisuga Sep 11, 2025
82fe4f6
Add a warning
hiroshisuga Sep 12, 2025
60a0366
Remove duplicated copied styles
hiroshisuga Sep 12, 2025
bd6171c
merge #23888 (be careful on syncing)
hiroshisuga Sep 12, 2025
f6fa43d
Remove unnecessary style removal
hiroshisuga Sep 14, 2025
a5180fb
var(--tl-font-draw) font injection
hiroshisuga Sep 14, 2025
99fbb28
Create dummy
hiroshisuga Sep 14, 2025
e987fb2
upload Kosugi Maru font
hiroshisuga Sep 14, 2025
eebb092
Delete bigbluebutton-html5/public/fonts/KosugiMaru/dummy
hiroshisuga Sep 14, 2025
98b93ae
Update fonts.css
hiroshisuga Sep 14, 2025
e0a33fe
register KosugiMaru font to tldraw-draw font
hiroshisuga Sep 14, 2025
7b5bd4f
Merge pull request #228 from hiroshisuga/dev3.0.14_JapaneseFont
hiroshisuga Sep 14, 2025
ae8af91
remove RFs
hiroshisuga Sep 14, 2025
7aa38f8
Use KosugiMaru in the main window
hiroshisuga Sep 15, 2025
5786848
Uncomment lines to use KosugiMaru in the viewers'apps
hiroshisuga Sep 15, 2025
e8f07af
Only supplement Japanese fonts
hiroshisuga Sep 15, 2025
b930321
remove font load -> to style.css
hiroshisuga Sep 15, 2025
8449c6f
Supplement KosugiMaru to 'draw' font
hiroshisuga Sep 15, 2025
24fb3b4
Remove KosugiMaru injection as already done at whiteboard/styles.css
hiroshisuga Sep 15, 2025
adf1026
Merge pull request #229 from hiroshisuga/dev3.0.14_addJPNFontSimplified
hiroshisuga Sep 15, 2025
5726c9e
fix: popup turns full-screen on main monitor
hiroshisuga Sep 15, 2025
2d7972b
Firefox specific style injection
hiroshisuga Sep 16, 2025
78e86a0
Copy <html> attributes
hiroshisuga Sep 16, 2025
b5225a5
Merge branch 'dev3.0.15_popup' into test3.0.15_mergetopopup
hiroshisuga Sep 18, 2025
c13a921
Merge pull request #230 from hiroshisuga/test3.0.15_mergetopopup
hiroshisuga Sep 18, 2025
5b7dc91
Simplify HTMLElement injection
hiroshisuga Sep 20, 2025
a1f84bd
Create HTMLElementBackup.ts
hiroshisuga Sep 20, 2025
25c143a
use originalHTMLElement for scrollObserver
hiroshisuga Sep 20, 2025
e51b6d9
Merge pull request #232 from hiroshisuga/test3015popup_chatscroll
hiroshisuga Sep 20, 2025
dbe3f75
Create animationFrameBackup.js
hiroshisuga Sep 20, 2025
7f70d98
fix: catch the accumulated message pane bottom
hiroshisuga Sep 20, 2025
de7aae1
use originalRAF/CAF on each message
hiroshisuga Sep 20, 2025
ee4669e
Modified but commented out
hiroshisuga Sep 20, 2025
cc3d507
Global injection of rAF and cAF
hiroshisuga Sep 20, 2025
d34705f
use originalRAF, but not sure yet...
hiroshisuga Sep 20, 2025
6bc04b8
add a comment
hiroshisuga Sep 20, 2025
1864f90
Merge pull request #233 from hiroshisuga/test3015_injectRAFandCAF
hiroshisuga Sep 20, 2025
d879b7e
Revert simplification of HTMLElement hack
hiroshisuga Sep 20, 2025
3113f60
Update hooks.js
hiroshisuga Sep 20, 2025
428038c
modify comment
hiroshisuga Sep 20, 2025
d105316
Comment to avoid an eslint error
hiroshisuga Sep 20, 2025
8f4a7d3
Remove RFs
hiroshisuga Sep 21, 2025
978a72b
Remove RF
hiroshisuga Sep 21, 2025
cb4cb87
Delete bigbluebutton-html5/public/fonts/KosugiMaru directory
hiroshisuga Sep 22, 2025
84c6315
Update fonts.css
hiroshisuga Sep 22, 2025
04ba4f1
Update styles.js
hiroshisuga Sep 23, 2025
472f03d
Update component.jsx
hiroshisuga Sep 23, 2025
036267c
Update component.jsx
hiroshisuga Sep 23, 2025
81763b5
Update component.jsx
hiroshisuga Sep 23, 2025
2cc6f3a
Merge pull request #234 from hiroshisuga/test3015pop_RemoveJAfont
hiroshisuga Sep 23, 2025
2829029
fix a mistake
hiroshisuga Sep 23, 2025
491e5ed
observer -> observerTlCanvas
hiroshisuga Sep 23, 2025
bbb626e
simplify render()
hiroshisuga Sep 23, 2025
a387d7b
Decrease overhead at mutation observer
hiroshisuga Sep 23, 2025
3c0e4e5
fix a problem of Safari browser.
hiroshisuga Sep 23, 2025
63ff355
Quit fullscreen first when the popup launched
hiroshisuga Sep 24, 2025
23ed3dc
Merge branch 'dev3.0.17_popup' into test3017merge
hiroshisuga Nov 30, 2025
3d3fd1e
update to 3.0.17
hiroshisuga Nov 30, 2025
b508e42
Close popup when meeting closed
hiroshisuga Mar 9, 2026
17d41f3
Presentation shifted in prod mode
hiroshisuga Mar 10, 2026
281b3b1
Update component.jsx
hiroshisuga Mar 11, 2026
17f5320
Update container.jsx
hiroshisuga Mar 11, 2026
958f1a8
Update component.jsx
hiroshisuga Mar 11, 2026
770ff0c
Merge pull request #242 from hiroshisuga/Dev3_popup_revert_suppress_3…
hiroshisuga Mar 11, 2026
8f0811f
fix a bug dir -> lang
hiroshisuga Mar 14, 2026
29da184
Simplify popup structure
hiroshisuga Mar 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,7 @@ class ActionsBar extends PureComponent {
showScreenshareQuickSwapButton,
isReactionsButtonEnabled,
isRaiseHandEnabled,
isPresentationDetached,
} = this.props;

const Settings = getSettingsSingletonInstance();
Expand Down Expand Up @@ -251,6 +252,7 @@ class ActionsBar extends PureComponent {
hasPinnedSharedNotes={isSharedNotesPinned}
hasGenericContent={hasGenericContent}
hasCameraAsContent={hasCameraAsContent}
isPresentationDetached={isPresentationDetached}
/>
)
: null}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ const PresentationOptionsContainer = ({
hasPinnedSharedNotes,
hasGenericContent,
hasCameraAsContent,
isPresentationDetached,
}) => {
let buttonType = 'presentation';
if (hasExternalVideo) {
Expand Down Expand Up @@ -100,7 +101,7 @@ const PresentationOptionsContainer = ({
}
}}
id="restore-presentation"
disabled={!isThereCurrentPresentation}
disabled={!isThereCurrentPresentation || isPresentationDetached}
data-test={!presentationIsOpen ? 'restorePresentation' : 'minimizePresentation'}
/>
);
Expand Down
8 changes: 8 additions & 0 deletions bigbluebutton-html5/imports/ui/components/app/component.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@ class App extends Component {
const {
hideActionsBar,
presentationIsOpen,
isPresentationDetached,
} = this.props;

if (hideActionsBar) return null;
Expand All @@ -292,6 +293,7 @@ class App extends Component {
<ActionsBarContainer
presentationIsOpen={presentationIsOpen}
setPresentationFitToWidth={this.setPresentationFitToWidth}
isPresentationDetached={isPresentationDetached}
/>
);
}
Expand Down Expand Up @@ -336,6 +338,9 @@ class App extends Component {
isNotificationEnabled,
isNonMediaLayout,
isRaiseHandEnabled,
popupWindow,
isPresentationDetached,
toggleDetachPresentation,
} = this.props;

const {
Expand Down Expand Up @@ -384,6 +389,9 @@ class App extends Component {
fitToWidth={presentationFitToWidth}
darkTheme={darkTheme}
presentationIsOpen={presentationIsOpen}
popupWindow={popupWindow}
isPresentationDetached={isPresentationDetached}
toggleDetachPresentation={toggleDetachPresentation}
/>
)
: null
Expand Down
26 changes: 22 additions & 4 deletions bigbluebutton-html5/imports/ui/components/app/container.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useEffect } from 'react';
import React, { useEffect, useState } from 'react';
import { useMutation, useReactiveVar } from '@apollo/client';
import AudioCaptionsLiveContainer from '/imports/ui/components/audio/audio-graphql/audio-captions/live/component';
import getFromUserSettings from '/imports/ui/services/users-settings';
Expand Down Expand Up @@ -112,9 +112,24 @@ const AppContainer = (props) => {
const shouldShowScreenshare = (viewScreenshare || isPresenter)
&& (currentMeeting?.componentsFlags?.hasScreenshare
|| currentMeeting?.componentsFlags?.hasCameraAsContent) && showScreenshare;
const shouldShowPresentation = (!shouldShowScreenshare && !isSharedNotesPinned
&& !shouldShowExternalVideo && !shouldShowGenericMainContent
&& (presentationIsOpen || presentationRestoreOnUpdate)) && isPresentationEnabled;

const [popupWindow, setPopupWindow] = useState(null);
const [isPresentationDetached, setIsPresentationDetached] = useState(false);

const toggleDetachPresentation = (popup) => {
setPopupWindow(popup);
setIsPresentationDetached(Boolean(popup));
};

const hasPresentationContent =
(presentationIsOpen || presentationRestoreOnUpdate) && isPresentationEnabled;
const noOtherMainContent =
!shouldShowScreenshare && !isSharedNotesPinned &&
!shouldShowExternalVideo && !shouldShowGenericMainContent;
const shouldShowPresentation = isPresentationDetached
? hasPresentationContent
: noOtherMainContent && hasPresentationContent;

const currentPageInfoData = currentPageInfo?.pres_page_curr[0] ?? {};
const fitToWidth = currentPageInfoData?.fitToWidth ?? false;
const pageId = currentPageInfoData?.pageId ?? '';
Expand Down Expand Up @@ -168,6 +183,9 @@ const AppContainer = (props) => {
isBreakout: currentMeeting?.isBreakout ?? false,
meetingName: currentMeeting?.name ?? '',
meetingId: currentMeeting?.meetingId ?? '',
isPresentationDetached,
popupWindow,
toggleDetachPresentation,
}}
{...props}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ import { ChatLoading } from '../component';
import Storage from '/imports/ui/services/storage/in-memory';
import browserInfo from '/imports/utils/browserInfo';
import deviceInfo from '/imports/utils/deviceInfo';
import { originalHTMLElement } from '/imports/utils/HTMLElementBackup';
import { originalRAF, originalCAF } from '/imports/utils/animationFrameBackup';

const PAGE_SIZE = 50;
const CLEANUP_TIMEOUT = 3000;
Expand Down Expand Up @@ -71,7 +73,7 @@ interface ChatListProps {
}

const isElement = (el: unknown): el is HTMLElement => {
return el instanceof HTMLElement;
return el instanceof originalHTMLElement;
};

const isMap = (map: unknown): map is Map<number, string> => {
Expand Down Expand Up @@ -403,7 +405,7 @@ const ChatMessageList: React.FC<ChatListProps> = ({
const value = (timestamp - initialTimestamp) / 300;
if (value <= 1) {
container.scrollTop = initialPosition + (value * scrollPositionDiff);
requestAnimationFrame(animateScrollPosition);
originalRAF(animateScrollPosition);
} else {
container.scrollTop = container.scrollHeight - container.offsetHeight;
setIsScrollingDisabled(false);
Expand All @@ -420,10 +422,10 @@ const ChatMessageList: React.FC<ChatListProps> = ({
initialTimestamp = timestamp;
initialPosition = scrollTop;
scrollPositionDiff = scrollHeight - offsetHeight - scrollTop;
requestAnimationFrame(animateScrollPosition);
originalRAF(animateScrollPosition);
};

requestAnimationFrame(startScrollAnimation);
originalRAF(startScrollAnimation);
}, []);

const renderUnreadNotification = useMemo(() => {
Expand Down Expand Up @@ -537,7 +539,7 @@ const ChatMessageList: React.FC<ChatListProps> = ({
},
) => {
if (currentFrame < stabilityFrames) {
const frameId = requestAnimationFrame(() => {
const frameId = originalRAF(() => {
pollScrollEndEvent(setFrameId, onScrollEnd, {
stabilityFrames,
currentFrame: currentFrame + 1,
Expand All @@ -552,10 +554,10 @@ const ChatMessageList: React.FC<ChatListProps> = ({

const startScrollEndEventPolling = useCallback((onScrollEnd: () => void) => {
if (scrollEndFrameRef.current != null) {
cancelAnimationFrame(scrollEndFrameRef.current);
originalCAF(scrollEndFrameRef.current);
scrollEndFrameRef.current = undefined;
}
scrollEndFrameRef.current = requestAnimationFrame(() => {
scrollEndFrameRef.current = originalRAF(() => {
pollScrollEndEvent((frameId) => {
scrollEndFrameRef.current = frameId;
}, onScrollEnd);
Expand Down Expand Up @@ -608,7 +610,7 @@ const ChatMessageList: React.FC<ChatListProps> = ({
clearInterval(scrollActivityCheckInterval.current);
}
if (scrollEndFrameRef.current) {
cancelAnimationFrame(scrollEndFrameRef.current);
originalCAF(scrollEndFrameRef.current);
}
}, []);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ import { isMobile } from '/imports/utils/deviceInfo';
import { layoutSelect } from '/imports/ui/components/layout/context';
import { Layout } from '/imports/ui/components/layout/layoutTypes';
import { useModalRegistration } from '/imports/ui/core/singletons/modalController';
import { originalRAF, originalCAF } from '/imports/utils/animationFrameBackup';

interface ChatMessageProps {
message: Message;
Expand Down Expand Up @@ -249,28 +250,28 @@ const ChatMessage = React.forwardRef<ChatMessageRef, ChatMessageProps>(({
useImperativeHandle(ref, () => ({
requestFocus() {
setTimeout(() => {
requestAnimationFrame(startScrollAnimation);
originalRAF(startScrollAnimation);
}, 0);
},
sequence: message.messageSequence,
}), [message.messageSequence]);

const startScrollAnimation = (timestamp: number) => {
if ((containerRef.current?.offsetTop || 0) > (scrollRef.current?.scrollTop || 0)) {
requestAnimationFrame(startBackgroundAnimation);
originalRAF(startBackgroundAnimation);
return;
}
animationInitialScrollPosition.current = scrollRef.current?.scrollTop || 0;
animationScrollPositionDiff.current = (scrollRef.current?.scrollTop || 0)
- ((containerRef.current?.offsetTop || 0) - ((scrollRef.current?.offsetHeight || 0) / 2));
animationInitialTimestamp.current = timestamp;
requestAnimationFrame(animateScrollPosition);
originalRAF(animateScrollPosition);
};

const startBackgroundAnimation = (timestamp: number) => {
animationInitialTimestamp.current = timestamp;
animationInitialBgColor.current = containerRef.current?.style.backgroundColor ?? '';
requestAnimationFrame(animateBackgroundColor);
originalRAF(animateBackgroundColor);
};

const animateScrollPosition = (timestamp: number) => {
Expand All @@ -282,10 +283,10 @@ const ChatMessage = React.forwardRef<ChatMessageRef, ChatMessageProps>(({
if (!scrollContainer || !messageContainer) return;
if (value <= 1) {
scrollContainer.scrollTop = initialPosition - (value * diff);
requestAnimationFrame(animateScrollPosition);
originalRAF(animateScrollPosition);
} else {
scrollContainer.scrollTop = initialPosition - diff;
requestAnimationFrame(startBackgroundAnimation);
originalRAF(startBackgroundAnimation);
}
};

Expand All @@ -294,7 +295,7 @@ const ChatMessage = React.forwardRef<ChatMessageRef, ChatMessageProps>(({
const value = (timestamp - animationInitialTimestamp.current) / ANIMATION_DURATION;
if (value < 1) {
chatMessageContentWrapperRef.current.style.backgroundColor = `rgb(${colorBlueLighterChannel} / ${1 - value})`;
requestAnimationFrame(animateBackgroundColor);
originalRAF(animateBackgroundColor);
} else {
chatMessageContentWrapperRef.current.style.backgroundColor = animationInitialBgColor.current;
}
Expand Down Expand Up @@ -325,7 +326,7 @@ const ChatMessage = React.forwardRef<ChatMessageRef, ChatMessageProps>(({
},
) => {
if (currentFrame < stabilityFrames) {
const frameId = requestAnimationFrame(() => {
const frameId = originalRAF(() => {
pollScrollEndEvent(setFrameId, {
stabilityFrames,
currentFrame: currentFrame + 1,
Expand All @@ -342,10 +343,10 @@ const ChatMessage = React.forwardRef<ChatMessageRef, ChatMessageProps>(({

const startScrollEndEventPolling = useCallback(() => {
if (scrollEndFrameRef.current != null) {
cancelAnimationFrame(scrollEndFrameRef.current);
originalCAF(scrollEndFrameRef.current);
scrollEndFrameRef.current = undefined;
}
scrollEndFrameRef.current = requestAnimationFrame(() => {
scrollEndFrameRef.current = originalRAF(() => {
pollScrollEndEvent((frameId) => {
scrollEndFrameRef.current = frameId;
});
Expand All @@ -366,7 +367,7 @@ const ChatMessage = React.forwardRef<ChatMessageRef, ChatMessageProps>(({
return () => {
scrollRef?.current?.removeEventListener('scroll', callbackFunction);
if (scrollEndFrameRef.current !== undefined) {
cancelAnimationFrame(scrollEndFrameRef.current);
originalCAF(scrollEndFrameRef.current);
scrollEndFrameRef.current = undefined;
}
};
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
function getFullscreenElement() {
if (document.fullscreenElement) return document.fullscreenElement;
if (document.webkitFullscreenElement) return document.webkitFullscreenElement;
if (document.mozFullScreenElement) return document.mozFullScreenElement;
if (document.msFullscreenElement) return document.msFullscreenElement;
function getFullscreenElement(d = document) {
if (d.fullscreenElement) return d.fullscreenElement;
if (d.webkitFullscreenElement) return d.webkitFullscreenElement;
if (d.mozFullScreenElement) return d.mozFullScreenElement;
if (d.msFullscreenElement) return d.msFullscreenElement;
return null;
}

const isFullScreen = (element) => {
if (getFullscreenElement() && getFullscreenElement() === element) {
const isFullScreen = (element, doc = document) => {
if (getFullscreenElement(doc) && getFullscreenElement(doc) === element) {
return true;
}
return false;
};

function cancelFullScreen() {
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitExitFullscreen) {
document.webkitExitFullscreen();
function cancelFullScreen(doc = document) {
if (doc.exitFullscreen) {
doc.exitFullscreen();
} else if (doc.mozCancelFullScreen) {
doc.mozCancelFullScreen();
} else if (doc.webkitExitFullscreen) {
doc.webkitExitFullscreen();
}
}

Expand All @@ -39,13 +39,20 @@ function fullscreenRequest(element) {
element.focus();
}

const toggleFullScreen = (ref = null) => {
const element = ref || document.documentElement;

if (isFullScreen(element)) {
cancelFullScreen();
const toggleFullScreen = (ref = null, isDetached = false, p) => {
const element = isDetached ? p.document.documentElement : (ref || document.documentElement);
if (isDetached) {
if (isFullScreen(element, p.document)) {
cancelFullScreen(p.document);
} else {
fullscreenRequest(element);
}
} else {
fullscreenRequest(element);
if (isFullScreen(element)) {
cancelFullScreen();
} else {
fullscreenRequest(element);
}
}
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import React, { useRef, useState, useEffect } from 'react';
import { getSettingsSingletonInstance } from '/imports/ui/services/settings';
import Service from './service';
import logger from '/imports/startup/client/logger';
//import { originalRAF } from '/imports/utils/animationFrameBackup';

const EmojiRain = ({ reactions }) => {
const Settings = getSettingsSingletonInstance();
Expand Down Expand Up @@ -57,6 +58,8 @@ const EmojiRain = ({ reactions }) => {
}

requestAnimationFrame(() => setTimeout(() => flyingEmojis.forEach((emoji) => {
// No effect observed (emoji rain works without using originalRAF). So removed.
//originalRAF(() => setTimeout(() => flyingEmojis.forEach((emoji) => {
const { shapeElement, endPosition } = emoji;
shapeElement.style.left = `${endPosition.x}px`;
shapeElement.style.top = `${endPosition.y}px`;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -461,10 +461,13 @@ const CustomLayout = (props) => {
}

if (
fullscreenElement === 'Presentation' ||
fullscreenElement === 'Screenshare' ||
fullscreenElement === 'ExternalVideo' ||
fullscreenElement === 'GenericContent'
(fullscreenElement === 'Presentation' ||
fullscreenElement === 'Screenshare' ||
fullscreenElement === 'ExternalVideo' ||
fullscreenElement === 'GenericContent') &&
// this is indispensable for showing a normal-sized operatable external video
// when popup is fullscreen within the sub-monitor
document.getElementById('presentationInnerWrapper')
) {
mediaBounds.width = windowWidth();
mediaBounds.height = windowHeight();
Expand Down Expand Up @@ -803,4 +806,4 @@ const CustomLayout = (props) => {
return null;
};

export default CustomLayout;
export default CustomLayout;
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ const NotificationsBarContainer = () => {

const errorMessage = useMemo(() => {
const isCritical = rttStatus === STATUS_CRITICAL;

if (!connected) {
const code = isCritical ? 3002 : 3001;
const msg = intl.formatMessage(
Expand Down
Loading
Loading