mirror of
https://git.vladimir.cc/vladimir/ewsdr.git
synced 2026-08-25 17:27:32 +00:00
fix(macos): масштаб канвы берём у окна контрола, а не у главного экрана
backingScaleFactor главного экрана врёт, когда окно лежит на другом мониторе. Спрашиваем масштаб у NSWindow того NSView, которому принадлежит паинтбокс: это ровно то число, в котором Cocoa рисует эту канву, и оно меняется само при перетаскивании окна между мониторами. Objective-C по-прежнему живёт только в MacScale; наружу торчит кроссплатформенная GetControlScale, которая на Windows/Linux сворачивается в Result := 1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -261,7 +261,7 @@ begin
|
||||
|
||||
// Окно могли перетащить на монитор с другим масштабом — кэш линейки тогда
|
||||
// держит битмап прежнего разрешения, его надо выбросить.
|
||||
NewScale := GetScreenScale;
|
||||
NewScale := GetControlScale(PB);
|
||||
if NewScale <> FScale then
|
||||
begin
|
||||
FScale := NewScale;
|
||||
|
||||
Reference in New Issue
Block a user