Where the host can't delegate the user's click (Firefox, Safari, WebKitGTK), lotus.20 showed EC's own screenshare button floating in the frame's corner, apart from the host's call bar. Now the host keeps its bar button and sends the new toWidget io.lotus.prompt_screenshare; the fork shows a small "Share your screen?" card inside the frame, just above the bar, and its Share button starts the share with the frame's own click. Same two clicks as the host's confirm on Chromium. - The card focuses Share; Cancel and Escape close it; it closes if a share starts some other way or the room's call policy stops allowing sharing, and never opens where the policy forbids it (set_frame_screenshare). - Picture-in-picture (~158 px tall): compact card without the description. - controls_state: frameScreenshare is now always false (the corner button is gone), screensharePrompt says the host should use the prompt, and screensharePromptOpen lets the host stop covering the frame meanwhile. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA
44 lines
1.1 KiB
CSS
44 lines
1.1 KiB
CSS
/* [cinny #43] "Share your screen?" card, drawn inside the frame just above the
|
|
host's call bar (the frame's bottom edge). */
|
|
.prompt {
|
|
position: fixed;
|
|
left: 50%;
|
|
bottom: calc(env(safe-area-inset-bottom) + var(--cpd-space-4x));
|
|
transform: translateX(-50%);
|
|
z-index: 2;
|
|
box-sizing: border-box;
|
|
width: max-content;
|
|
max-width: min(360px, calc(100% - 2 * var(--cpd-space-2x)));
|
|
padding: var(--cpd-space-4x);
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--cpd-space-2x);
|
|
background: var(--cpd-color-bg-canvas-default);
|
|
border: 1px solid var(--cpd-color-border-interactive-secondary);
|
|
border-radius: var(--cpd-space-3x);
|
|
box-shadow: 0 8px 32px rgb(0 0 0 / 35%);
|
|
color: var(--cpd-color-text-primary);
|
|
}
|
|
|
|
.title {
|
|
margin: 0;
|
|
}
|
|
|
|
.buttons {
|
|
display: flex;
|
|
gap: var(--cpd-space-2x);
|
|
}
|
|
|
|
/* The call's picture-in-picture window is only ~158px tall: keep the card to
|
|
the question and the two buttons. */
|
|
@media (max-height: 240px) {
|
|
.prompt {
|
|
bottom: var(--cpd-space-2x);
|
|
padding: var(--cpd-space-2x) var(--cpd-space-3x);
|
|
gap: var(--cpd-space-1-5x);
|
|
}
|
|
.description {
|
|
display: none;
|
|
}
|
|
}
|