Skip to content

Dev3.0.34 Snapshot of detach & presenterTool PR - #279

Open
hiroshisuga wants to merge 196 commits into
development3034_to_compare_with_detachPRfrom
dev3035_detached_and_presenterTool
Open

Dev3.0.34 Snapshot of detach & presenterTool PR#279
hiroshisuga wants to merge 196 commits into
development3034_to_compare_with_detachPRfrom
dev3035_detached_and_presenterTool

Conversation

@hiroshisuga

@hiroshisuga hiroshisuga commented Aug 12, 2026

Copy link
Copy Markdown
Owner

I made a snapshot of this PR for future information.
Now I am diving into a new PR which aims to remove all the global constructor injection to get tldraw work.
So this PR still works without all the modification that would be done in tldraw fork of BBB, but can be outdated depending on how the new PR is developed.

Will resolve bigbluebutton#18182, bigbluebutton#11403

Problems remained

  • dark mode does not work (show normal mode) -> darkReader is implemented as a browser function, so it would not work on the popup window (needs confirmation) -> now it works by copying CSS rules (Aug 2026)
  • tooltip not shown
  • depending on browser and OS, fullscreen in the same monitor does not expand the presentation (if you move to another monitor, it works). If it happens, you click the screen then tldraw realizes and the screen size has changed (but not always...).
  • the above problem is solved. Now zooming (by wheel or by clicking the zoom button) is the only problem remained. -> accidentally fixed(?) by 5726c9e, after the evaporation of cache??? -> solved by replacing requestAnimationFrame and cancelAnimationFrame with those of popup (cc3d507).
  • resize by dragging the resize handles does not work (focus is lost); dom.ts in tldraw causes the problem
  • the global variable HTMLElement is injected with that of popupWindow, fixing the problem above, yet other problems to be expected. -> indeed. We now back up the window.HTMLElement at utils/HTMLElementBackup and use the original value at for instance the chat message scroll (Fix: chat scrolls even with popped up presentation #232).
  • style panel including the color picker does not work well. When mouse-down, the mouse-up event is not caught, behaving as if mouse is kept down when hovered over the button, picking up every color that mouse hover. The reason is in this file: tldraw-alpha30/packages/tldraw/src/lib/ui/components/primitives/ButtonPicker.tsx
  • Fonts are not properly loaded on the popup, e. g., the var(--tl-font-draw) font which is the default on latin languages.
  • Frequent 3006 error from graphql since 3.0.13 or 14 (not happening on 3.0.11)
  • Firefox suffers an error of too much recursion of font measurement when the text font is changed more than twice (or once?). The tldraw files packages/editor/src/lib/editor/managers/TextManager.ts, packages/tldraw/src/lib/shapes/text/TextShapeUtil.tsx, and packages/editor/src/lib/utils/WeakMapCache.ts may account for it. -> fixed by 3113f60
  • slide zoom is not inherited to the popup (perhaps currentPresentationPageRef is initialised in whiteboard/component.jsx: see #23828

Additional features

  • disabled by default, to enable you have to toggle the parameter allowPopupPresentation.
  • on the popup, the hand icon turns red, being more visible in the screen of the real lecture. -> replaced by the laser pointer PR
  • add Kosugi-Maru font to look a text funnier for the Japanese locale -> Dev3.0.15 use better font #235 (only for popup)
  • Show the presenter note like PPT, extracting notes from an uploaded pptx file (need to copy bigbluebutton-web/script/extract_pptx_notes.py to e.g. /usr/local/bin/, and modify the nginx configuration file). So this modification close the issue #20487
  • The current slide panel reflects the zoom and pan, together with the pointer on the slide, however, whiteboard drawings are not reflected.
  • the panes of presenter's tool are resizable now, adopting to portrait mode presentation.
  • Now the whiteboard drawing correctly (and at real-time) show in the "current slide" pane, but not in the "next slide" pane.

ToDo

  • if the frequent 3006 error disappears. -> still appears on 3.0.15 -> not observed anymore on 3.0.22, so reverted this PR (26.3.11).
  • video stop button appears. -> yes it does on 3.0.15
  • On mobile devices (especially iPad) it is unstable. Disabling this feature is an option Disabled for mobile devices (only for desktop devices)
  • whiteboard annotations do not show up on the current slide window.
  • text drawn on whiteboard bears tldraw font (we could replace the font included in the SVG file)
  • poll results are not explicitly shown in the "current slide", showing only a white rectangle (which is OK, I think)

Caution
Tldraw2.0 internally (and implicitly) uses global variables/functions, making some conflicts with popup, including:

  • window.HTMLElement
  • window.requestAnimationFrame
  • window.cancelAnimationFrame

You need to modify /usr/share/bigbluebutton/nginx/web manually, and copy script/extract_pptx_notes.py to /usr/local/bin/ manually (latter only once; is there a better location?).

Screenshot:
Animation

(sample slide from https://powerpoint.cloud.microsoft/create/en/presentation-templates/)

slide_sample.pptx

hiroshisuga and others added 27 commits July 26, 2026 12:08
Revert the previous change and use isMobile from utils/deviceinfo
import isMobile from utils/deviceinfo.
This 'isMobile' includes both phones and tablets, whereas the 'Mobile' from layout/enums.js does not include tablets as it is only for the layout.
suggested by coderabbit.
…bluebutton#25571)

* docs: iteration doc sync for 3.0.33 (bigbluebutton#25568)

* docs: iteration doc sync for 3.0.33

Covers documentation-worthy changes on v3.0.x-release since the v3.0.32
tag that were not yet reflected in the docs:

- new-features.md: Panopto external video player; the new
  public.whiteboard.slideSwapDecodeTimeoutMs client setting; corrected the
  html5PluginSdkVersion line to 0.0.104; tagged
  maxSharedNotesInitialContentUrlPayloadSize with 3.0.33 and added
  numPresentationDownloadThreads to the bbb-web properties ledger.
- create.tsx: "(added 3.0.33)" on sharedNotesInitialContentMarkdown and
  sharedNotesInitialContentMarkdownUrl.
- api.md: the three shared-notes initial-content create parameters added to
  the "Updated in 3.0" list, tagged with the point release that shipped them.
- plugins.md: useTimer hook (plugin SDK 0.0.104) and the new senderRole
  field on useLoadedChatMessages.
- faq.md: external video line now mentions Panopto.
1. Do not access the notes when not detached
2. Put an excuse for 404 error occurs when detached but no notes loaded
Although no change is visible, this still makes the logic clearer.
BBB uses the darkreader framework instead of tldraw's darkmode. We need to copy the CSS rules manually.
@hiroshisuga hiroshisuga changed the title 3.0.24 Snapshot of detach & presenterTool PR Dev3.0.24 Snapshot of detach & presenterTool PR Aug 12, 2026
@github-actions

Copy link
Copy Markdown

🚨 Automated tests failed

@hiroshisuga hiroshisuga changed the title Dev3.0.24 Snapshot of detach & presenterTool PR Dev3.0.34 Snapshot of detach & presenterTool PR Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants