Fix: dock the meeting bar on native calls (decouple it from the shared screen)

The control bar is a draggable FLOATING bar (position:fixed when moved/
restored) meant to sit over the shared screen — which works on web (video is
DOM) but on a native call the screen is a native overlay ABOVE the WebView,
so the floating bar hides behind it, and its live position fed my height
clamp → dragging it resized/reoriented the screen.

Fix: skip makeDraggable on native calls so the bar stays DOCKED in flow at
the bottom. The grid then reserves space above it and the native shared
screen fills that stable area — bar and screen are independent, controls
stay visible and tappable. (A floating bar that overlays the native video
would require a hole-punch rework.)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-07 11:03:35 +05:30
parent 5a140e45a1
commit f2efff394b
+4 -1
View File
@@ -4918,7 +4918,10 @@ function renderCall(){
addTile('__local', meetLocalStream, (ME&&ME.name)?ME.name:'You', true); addTile('__local', meetLocalStream, (ME&&ME.name)?ME.name:'You', true);
setTileMute('__local', !meetMic); setTileMute('__local', !meetMic);
detectBtOutput(); // #8d: pick the right speaker/bluetooth glyph for the current route detectBtOutput(); // #8d: pick the right speaker/bluetooth glyph for the current route
makeDraggable(document.querySelector('.meet-bar'), 'bzc_meetbar_pos'); // new #4: bar covers the shared screen → let them move it // Draggable floating bar (so it can be moved off a shared screen) — WEB calls only. On a native call the
// shared screen is a native overlay ABOVE the WebView, so a floating web bar would hide behind it; instead we
// keep the bar DOCKED at the bottom (in flow) and the native screen fills the stable area above it.
if(!meetNative) makeDraggable(document.querySelector('.meet-bar'), 'bzc_meetbar_pos');
} }
// ---- Audio devices (#3): one menu behind the MIC's ▾ caret, listing Speaker + Microphone (like Teams), // ---- Audio devices (#3): one menu behind the MIC's ▾ caret, listing Speaker + Microphone (like Teams),
// instead of a separate headphones button. Choosing a speaker applies setSinkId to every meeting media // instead of a separate headphones button. Choosing a speaker applies setSinkId to every meeting media