feat: add releaseCanvasOnDestroy flag

This commit is contained in:
Dmitry Zarva 2022-11-07 09:19:29 +03:00
parent e7b2bd6d15
commit c4c7c6c60b
2 changed files with 13 additions and 0 deletions

View File

@ -164,6 +164,17 @@ export const Konva = {
isDragReady() {
return !!Konva['DD'].node;
},
/**
* Should Konva release canvas elements on destroy. Default is true.
* Useful to avoid memory leak issues in Safari on macOS/iOS.
* @property releaseCanvasOnDestroy
* @default true
* @name releaseCanvasOnDestroy
* @memberof Konva
* @example
* Konva.releaseCanvasOnDestroy = true;
*/
releaseCanvasOnDestroy: true,
// user agent
document: glob.document,
// insert Konva into global namespace (window)

View File

@ -958,6 +958,8 @@ export const Util = {
}
},
releaseCanvas(...canvases: HTMLCanvasElement[]) {
if (!Konva.releaseCanvasOnDestroy) return;
canvases.forEach(c => {
c.width = 0;
c.height = 0;