Files
kitty/glfw/wl_monitor.c
Dan Egnor 17d5103652 Wayland: guess the origin (0,0) output for a fresh window's fractional scale
When there is no focused or recently-focused window to key off of (the
typical first-window-at-startup case), glfwGetWaylandCurrentMonitorFractionalScale
fell back to the registry-first output (monitors[0]). Registry/connector
order is semi-arbitrary and uncorrelated with where a compositor actually
places a new window, so on a multi-monitor setup with mixed fractional
scales the first window could be born at the wrong size.

Prefer the output at the logical origin (0, 0) instead: the compositor's
top-left/primary output is a better guess for initial placement than
registry order. Fall back to monitors[0] when no output reports (0, 0).

Since xdg_output geometry (including position) arrives asynchronously and
x/y read zero until it does, wait for every monitor's logical geometry
before trusting the reported positions, so an as-yet-unpositioned output
cannot spuriously match (0, 0).

Discussed in #10268.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VjwP6hQjA6GMuiM7Mf9VAx
2026-07-23 12:34:19 -07:00

14 KiB
Vendored