|
@@ -37,10 +37,25 @@ const StaticCanvas = (props: StaticCanvasProps) => {
|
|
|
canvas.classList.add("excalidraw__canvas", "static");
|
|
|
}
|
|
|
|
|
|
- canvas.style.width = `${props.appState.width}px`;
|
|
|
- canvas.style.height = `${props.appState.height}px`;
|
|
|
- canvas.width = props.appState.width * props.scale;
|
|
|
- canvas.height = props.appState.height * props.scale;
|
|
|
+ const widthString = `${props.appState.width}px`;
|
|
|
+ const heightString = `${props.appState.height}px`;
|
|
|
+ if (canvas.style.width !== widthString) {
|
|
|
+ canvas.style.width = widthString;
|
|
|
+ }
|
|
|
+ if (canvas.style.height !== heightString) {
|
|
|
+ canvas.style.height = heightString;
|
|
|
+ }
|
|
|
+
|
|
|
+ const scaledWidth = props.appState.width * props.scale;
|
|
|
+ const scaledHeight = props.appState.height * props.scale;
|
|
|
+ // setting width/height resets the canvas even if dimensions not changed,
|
|
|
+ // which would cause flicker when we skip frame (due to throttling)
|
|
|
+ if (canvas.width !== scaledWidth) {
|
|
|
+ canvas.width = scaledWidth;
|
|
|
+ }
|
|
|
+ if (canvas.height !== scaledHeight) {
|
|
|
+ canvas.height = scaledHeight;
|
|
|
+ }
|
|
|
|
|
|
renderStaticScene(
|
|
|
{
|