frame bg: make legacy scenes opt-in

This commit is contained in:
Ryan Di
2026-03-18 19:49:46 +11:00
parent 3f405ab833
commit 858d1d4cce
9 changed files with 76 additions and 3 deletions
+4 -1
View File
@@ -10,6 +10,7 @@ import {
getFontString,
getUpdatedTimestamp,
getLineHeight,
isTransparent,
} from "@excalidraw/common";
import type { Radians } from "@excalidraw/math";
@@ -185,11 +186,13 @@ export const newFrameElement = (
name?: string;
} & ElementConstructorOpts,
): NonDeleted<ExcalidrawFrameElement> => {
const frameBase = _newElementBase<ExcalidrawFrameElement>("frame", opts);
const frameElement = newElementWith(
{
..._newElementBase<ExcalidrawFrameElement>("frame", opts),
...frameBase,
type: "frame",
name: opts?.name || null,
backgroundEnabled: !isTransparent(frameBase.backgroundColor),
},
{},
);
+1 -1
View File
@@ -787,7 +787,7 @@ export const renderFrameBackground = (
roundCorners?: boolean;
},
) => {
if (isTransparent(frame.backgroundColor)) {
if (!frame.backgroundEnabled || isTransparent(frame.backgroundColor)) {
return;
}
+1
View File
@@ -163,6 +163,7 @@ export type InitializedExcalidrawImageElement = MarkNonNullable<
export type ExcalidrawFrameElement = _ExcalidrawElementBase & {
type: "frame";
name: string | null;
backgroundEnabled: boolean;
};
export type ExcalidrawMagicFrameElement = _ExcalidrawElementBase & {