Skip to content

fix: stop a full-screen share mirroring itself into the picture - #189

Merged
TheCryptoDonkey merged 2 commits into
mainfrom
fix/share-self-mirror
Sep 27, 2026
Merged

TheCryptoDonkey merged 2 commits into
mainfrom
fix/share-self-mirror

Conversation

@TheCryptoDonkey

Copy link
Copy Markdown
Member

From a real call: a Linux desktop sharing an area sized to the whole screen sent an endless screen within a screen, because the sharer's own live preview of the share (the local preview tile, and the floating preview window) sat inside the captured display.

  • While an area share covers (within 10%) the whole display, or a plain share is a whole monitor (displaySurface === 'monitor'), the sharer's own live preview is withheld and a short notice shown instead. The marks overlay is untouched, so the viewer's drawings still show on the sharer's screen.
  • The flag is cleared whenever a share stops.
  • Unit test for the geometry and an acceptance test in screen-share-audio.spec.ts that fails without the wiring. Share specs 12/12 locally on chromium; unit suite 2626/2626.

Not verified on a real X11 desktop.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CG4pPCsd8pdySNvBpt8fTk

An area sized to the whole display, or a plain full-screen share, captures
this device's own on-screen surfaces that show the outgoing picture too -
the local preview tile and the floating marks window - so the tile shows
the capture, which shows the tile, without end. Reported from a real call
on Linux X11, where window exclusion from capture is unavailable.

Withhold the live picture from both surfaces whenever the capture covers
(near enough) the whole display, leaving a placeholder notice in its
place. The marks overlay on each paints on its own canvas rather than a
copy of the video, so drawing on a full-screen share still reaches and
shows for the sharer.
@TheCryptoDonkey
TheCryptoDonkey merged commit 23d3403 into main Sep 27, 2026
5 checks passed
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.

1 participant