diff --git a/ftl/core/notetypes.ftl b/ftl/core/notetypes.ftl index 353ea308d..59036f9f1 100644 --- a/ftl/core/notetypes.ftl +++ b/ftl/core/notetypes.ftl @@ -50,3 +50,4 @@ notetypes-hide-one-guess-one = Hide One, Guess One notetypes-error-generating-cloze = An error occurred when generating an image occlusion note notetypes-error-getting-imagecloze = An error occurred while fetching an image occlusion note notetypes-error-loading-image-occlusion = Error loading image occlusion. Is your Anki version up to date? +notetype-error-no-image-to-show = No image to show. diff --git a/ts/image-occlusion/ImageOcclusionPage.svelte b/ts/image-occlusion/ImageOcclusionPage.svelte index 802610962..93ed9c20a 100644 --- a/ts/image-occlusion/ImageOcclusionPage.svelte +++ b/ts/image-occlusion/ImageOcclusionPage.svelte @@ -32,29 +32,48 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html - + diff --git a/ts/image-occlusion/MaskEditor.svelte b/ts/image-occlusion/MaskEditor.svelte index ec8d3446f..360cec235 100644 --- a/ts/image-occlusion/MaskEditor.svelte +++ b/ts/image-occlusion/MaskEditor.svelte @@ -50,7 +50,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html diff --git a/ts/image-occlusion/SideToolbar.svelte b/ts/image-occlusion/SideToolbar.svelte index 3701e9d43..fe8bc4330 100644 --- a/ts/image-occlusion/SideToolbar.svelte +++ b/ts/image-occlusion/SideToolbar.svelte @@ -65,8 +65,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html diff --git a/ts/image-occlusion/Tags.svelte b/ts/image-occlusion/Tags.svelte index d7df5e585..2270e0eef 100644 --- a/ts/image-occlusion/Tags.svelte +++ b/ts/image-occlusion/Tags.svelte @@ -23,6 +23,6 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html diff --git a/ts/image-occlusion/TopToolbar.svelte b/ts/image-occlusion/TopToolbar.svelte index 5ef1613b5..0461915eb 100644 --- a/ts/image-occlusion/TopToolbar.svelte +++ b/ts/image-occlusion/TopToolbar.svelte @@ -139,15 +139,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html diff --git a/ts/image-occlusion/tools/tool-polygon.ts b/ts/image-occlusion/tools/tool-polygon.ts index 66e6fb415..879f9a4db 100644 --- a/ts/image-occlusion/tools/tool-polygon.ts +++ b/ts/image-occlusion/tools/tool-polygon.ts @@ -13,7 +13,6 @@ let linesList: fabric.Line = []; let pointsList: fabric.Circle = []; let drawMode = false; let zoomValue = 1; -let panzoomX = 1, panzoomY = 1; const addedPolygonIds: string[] = []; export const drawPolygon = (canvas: fabric.Canvas, panzoom: PanZoom): void => { @@ -67,15 +66,13 @@ const toggleDrawPolygon = (canvas: fabric.Canvas): void => { const addPoint = (canvas: fabric.Canvas, options, panzoom): void => { zoomValue = panzoom.getTransform().scale; - panzoomX = panzoom.getTransform().x; - panzoomY = panzoom.getTransform().y; const canvasContainer = document.querySelector(".canvas-container")!.getBoundingClientRect()!; let clientX = options.e.touches ? options.e.touches[0].clientX : options.e.clientX; let clientY = options.e.touches ? options.e.touches[0].clientY : options.e.clientY; - clientX = (clientX - canvasContainer.left - panzoomX) / zoomValue; - clientY = (clientY - canvasContainer.top - panzoomY) / zoomValue; + clientX = (clientX - canvasContainer.left) / zoomValue; + clientY = (clientY - canvasContainer.top) / zoomValue; const point = new fabric.Circle({ radius: 5, diff --git a/ts/reviewer/image_occlusion.ts b/ts/reviewer/image_occlusion.ts index 5c7fedbfe..b0a83034b 100644 --- a/ts/reviewer/image_occlusion.ts +++ b/ts/reviewer/image_occlusion.ts @@ -1,11 +1,17 @@ // Copyright: Ankitects Pty Ltd and contributors // License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html +import * as tr from "@tslib/ftl"; + window.addEventListener("load", () => { window.addEventListener("resize", setupImageCloze); }); export function setupImageCloze(): void { + window.requestAnimationFrame(setupImageClozeInner); +} + +function setupImageClozeInner(): void { const canvas: HTMLCanvasElement = document.querySelector("canvas")! as HTMLCanvasElement; canvas.style.maxWidth = "100%"; canvas.style.maxHeight = "95vh"; @@ -14,7 +20,7 @@ export function setupImageCloze(): void { const container = document.getElementById("container") as HTMLDivElement; const image = document.getElementById("img") as HTMLImageElement; if (image == null) { - container.innerText = "No image to show."; + container.innerText = tr.notetypeErrorNoImageToShow(); return; }