Skip to content

fix(tauri): correct screenshot rect on Windows under DPI scaling#721

Merged
abose merged 3 commits into
mainfrom
ss
May 27, 2026
Merged

fix(tauri): correct screenshot rect on Windows under DPI scaling#721
abose merged 3 commits into
mainfrom
ss

Conversation

@abose
Copy link
Copy Markdown
Member

@abose abose commented May 27, 2026

GDI APIs (GetClientRect, PrintWindow, GetDIBits) operate in physical
pixels for DPI-aware processes, but the JS caller sends the capture
rect in CSS pixels (scaled only by the webview zoom factor, not the
OS DPI). At Windows display scaling >100%, this produced screenshots
that were both shifted and undersized.

Multiply the incoming rect by window.scale_factor() (the OS DPI scale,
e.g. 1.25 at 125% scaling) before clamping to the physical client area.
macOS is unaffected because WKSnapshotConfiguration.setRect takes view
points, which map 1:1 to CSS pixels. Electron (Linux) is unaffected
because capturePage already accepts CSS-pixel rects.

abose and others added 3 commits May 27, 2026 22:49
…racted

The adm-zip extractEntryTo call in downloadNodeBinary.js did not pass
the overwrite flag, causing postinstall to fail with "Target file already
exists" on repeat runs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
GDI APIs (GetClientRect, PrintWindow, GetDIBits) operate in physical
pixels for DPI-aware processes, but the JS caller sends the capture
rect in CSS pixels (scaled only by the webview zoom factor, not the
OS DPI). At Windows display scaling >100%, this produced screenshots
that were both shifted and undersized.

Multiply the incoming rect by window.scale_factor() (the OS DPI scale,
e.g. 1.25 at 125% scaling) before clamping to the physical client area.
macOS is unaffected because WKSnapshotConfiguration.setRect takes view
points, which map 1:1 to CSS pixels. Electron (Linux) is unaffected
because capturePage already accepts CSS-pixel rects.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sonarqubecloud
Copy link
Copy Markdown

@abose abose merged commit 1d16440 into main May 27, 2026
3 of 6 checks passed
@abose abose deleted the ss branch May 27, 2026 19:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant