Gtk3: fixed fonts dpi. issue #40960

This commit is contained in:
zeljan1 2025-01-08 17:33:04 +01:00
parent fad6cd5192
commit 54f0c7e779
3 changed files with 11 additions and 16 deletions

View File

@ -399,8 +399,10 @@ begin
{$ENDIF}
ScreenDC := GetDC(0);
try
ScreenInfo.PixelsPerInchX := GetDeviceCaps(ScreenDC, LOGPIXELSX);
ScreenInfo.PixelsPerInchY := GetDeviceCaps(ScreenDC, LOGPIXELSY);
ScreenInfo.PixelsPerInchX := Round(gdk_screen_get_resolution(gdk_screen_get_default));
// GetDeviceCaps(ScreenDC, LOGPIXELSX);
ScreenInfo.PixelsPerInchY := Round(gdk_screen_get_resolution(gdk_screen_get_default));
// GetDeviceCaps(ScreenDC, LOGPIXELSY);
ScreenInfo.ColorDepth := GetDeviceCaps(ScreenDC, BITSPIXEL);
finally
ReleaseDC(0, ScreenDC);

View File

@ -720,7 +720,7 @@ begin
begin
{ in points }
//sz:=round(96*sz/PANGO_SCALE/72);//round(2.03*sz/PANGO_SCALE);
sz := MulDiv(PANGO_PIXELS(sz), 96{Screen.PixelsPerInch}, 72 )
sz := MulDiv(PANGO_PIXELS(sz), Round(gdk_screen_get_resolution(gdk_screen_get_default)), 72 );
end;
fLogFont.lfHeight:=sz;//round(sz/PANGO_SCALE);

View File

@ -2085,6 +2085,8 @@ var
w,w_mm,h,h_mm:gint;
rr:double;
pscr:PGdkScreen;
aMonitorRect: TGdkRectangle;
AMonitor: PGdkMonitor;
begin
(* MONITOR_DPI_TYPE = (
MDT_EFFECTIVE_DPI = 0,
@ -2093,19 +2095,10 @@ begin
MDT_DEFAULT = MDT_EFFECTIVE_DPI);
TMonitorDpiType = MONITOR_DPI_TYPE;
*)
pscr:=TGdkScreen.get_default;
w:=pscr^.get_width;
w_mm:=pscr^.get_width_mm;
h:=pscr^.get_height;
h_mm:=pscr^.get_height_mm;
dpiX:=round(25.4*w/w_mm);
dpiY:=round(25.4*h/h_mm);
rr:=TGdkScreen.get_default^.get_resolution();
Result:=0;
//Result:=inherited GetDpiForMonitor(hmonitor, dpiType, dpiX, dpiY);
// MDT_EFFECTIVE_DPI
dpiX := Round(gdk_screen_get_resolution(gdk_screen_get_default));
dpiY := dpiX;
Result := 0;
end;
function TGtk3WidgetSet.GetFocus: HWND;