From 88002cf7feb3c36b435f5aa98252ec16485ba8a7 Mon Sep 17 00:00:00 2001 From: Min Idzelis Date: Wed, 18 Mar 2026 07:40:36 -0400 Subject: [PATCH] fix(web): allow images to be downloaded again(long-press or right click) (#26992) --- e2e/src/specs/web/photo-viewer.e2e-spec.ts | 14 ++++++++++++++ web/src/lib/components/ImageLayer.svelte | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/e2e/src/specs/web/photo-viewer.e2e-spec.ts b/e2e/src/specs/web/photo-viewer.e2e-spec.ts index 88b61278bc..76d9d61ed6 100644 --- a/e2e/src/specs/web/photo-viewer.e2e-spec.ts +++ b/e2e/src/specs/web/photo-viewer.e2e-spec.ts @@ -64,6 +64,20 @@ test.describe('Photo Viewer', () => { await expect(original).toHaveAttribute('src', /fullsize/); }); + test('right-click targets the img element', async ({ page }) => { + await page.goto(`/photos/${asset.id}`); + + const preview = page.getByTestId('preview').filter({ visible: true }); + await expect(preview).toHaveAttribute('src', /.+/); + + const box = await preview.boundingBox(); + const tagAtCenter = await page.evaluate(({ x, y }) => document.elementFromPoint(x, y)?.tagName, { + x: box!.x + box!.width / 2, + y: box!.y + box!.height / 2, + }); + expect(tagAtCenter).toBe('IMG'); + }); + test('reloads photo when checksum changes', async ({ page }) => { await page.goto(`/photos/${asset.id}`); diff --git a/web/src/lib/components/ImageLayer.svelte b/web/src/lib/components/ImageLayer.svelte index 1dba4e4c7a..ea8360df56 100644 --- a/web/src/lib/components/ImageLayer.svelte +++ b/web/src/lib/components/ImageLayer.svelte @@ -36,7 +36,7 @@ onLoad={() => adaptiveImageLoader.onLoad(quality)} onError={() => adaptiveImageLoader.onError(quality)} bind:ref - class="h-full w-full bg-transparent" + class="h-full w-full bg-transparent pointer-events-auto" {alt} {role} draggable={false}