Merge pull request #4054 from element-hq/johannes/pip-border

Add PiP border in 1on1 layouts
This commit is contained in:
Johannes Marbach
2026-06-23 12:38:24 +02:00
committed by GitHub
6 changed files with 36 additions and 0 deletions

View File

@@ -155,6 +155,7 @@ import {
createRingingMedia,
type RingingMediaViewModel,
} from "../media/RingingMediaViewModel.ts";
import { type GridTileViewModel } from "../TileViewModel.ts";
const logger = rootLogger.getChild("[CallViewModel]");
//TODO
@@ -1482,6 +1483,7 @@ export function createCallViewModel$(
({ tiles: prevTiles }, [media, visibleTiles]) => {
let layout: Layout;
let newTiles: TileStore;
let pip: GridTileViewModel | undefined;
switch (media.type) {
case "grid":
case "spotlight-landscape":
@@ -1507,6 +1509,7 @@ export function createCallViewModel$(
landscapePipAlignment$,
prevTiles,
);
pip = layout.pip;
break;
case "one-on-one-portrait":
[layout, newTiles] = oneOnOnePortraitLayout(
@@ -1515,12 +1518,17 @@ export function createCallViewModel$(
portraitPipAlignment$,
prevTiles,
);
pip = layout.pip;
break;
case "pip":
[layout, newTiles] = pipLayout(media, prevTiles);
break;
}
for (const tile of newTiles.gridTiles) {
tile.setShowOutline(tile === pip);
}
return { layout, tiles: newTiles };
},
{ layout: null, tiles: TileStore.empty() },