Fix Windows overlay scaling bounds (#34)

This commit is contained in:
2026-03-25 16:30:11 -07:00
committed by GitHub
parent 842008b089
commit 5ee4617607
4 changed files with 68 additions and 7 deletions

View File

@@ -0,0 +1,36 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import { normalizeOverlayWindowBoundsForPlatform } from './overlay-window-bounds';
test('normalizeOverlayWindowBoundsForPlatform returns original geometry outside Windows', () => {
const geometry = { x: 150, y: 90, width: 1200, height: 675 };
assert.deepEqual(normalizeOverlayWindowBoundsForPlatform(geometry, 'linux', null), geometry);
});
test('normalizeOverlayWindowBoundsForPlatform converts Windows physical pixels to DIP', () => {
assert.deepEqual(
normalizeOverlayWindowBoundsForPlatform(
{
x: 150,
y: 75,
width: 1920,
height: 1080,
},
'win32',
{
screenToDipRect: (_window, rect) => ({
x: Math.round(rect.x / 1.5),
y: Math.round(rect.y / 1.5),
width: Math.round(rect.width / 1.5),
height: Math.round(rect.height / 1.5),
}),
},
),
{
x: 100,
y: 50,
width: 1280,
height: 720,
},
);
});