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} {$ENDIF}
ScreenDC := GetDC(0); ScreenDC := GetDC(0);
try try
ScreenInfo.PixelsPerInchX := GetDeviceCaps(ScreenDC, LOGPIXELSX); ScreenInfo.PixelsPerInchX := Round(gdk_screen_get_resolution(gdk_screen_get_default));
ScreenInfo.PixelsPerInchY := GetDeviceCaps(ScreenDC, LOGPIXELSY); // GetDeviceCaps(ScreenDC, LOGPIXELSX);
ScreenInfo.PixelsPerInchY := Round(gdk_screen_get_resolution(gdk_screen_get_default));
// GetDeviceCaps(ScreenDC, LOGPIXELSY);
ScreenInfo.ColorDepth := GetDeviceCaps(ScreenDC, BITSPIXEL); ScreenInfo.ColorDepth := GetDeviceCaps(ScreenDC, BITSPIXEL);
finally finally
ReleaseDC(0, ScreenDC); ReleaseDC(0, ScreenDC);

View File

@ -720,7 +720,7 @@ begin
begin begin
{ in points } { in points }
//sz:=round(96*sz/PANGO_SCALE/72);//round(2.03*sz/PANGO_SCALE); //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; end;
fLogFont.lfHeight:=sz;//round(sz/PANGO_SCALE); fLogFont.lfHeight:=sz;//round(sz/PANGO_SCALE);

View File

@ -2085,6 +2085,8 @@ var
w,w_mm,h,h_mm:gint; w,w_mm,h,h_mm:gint;
rr:double; rr:double;
pscr:PGdkScreen; pscr:PGdkScreen;
aMonitorRect: TGdkRectangle;
AMonitor: PGdkMonitor;
begin begin
(* MONITOR_DPI_TYPE = ( (* MONITOR_DPI_TYPE = (
MDT_EFFECTIVE_DPI = 0, MDT_EFFECTIVE_DPI = 0,
@ -2093,19 +2095,10 @@ begin
MDT_DEFAULT = MDT_EFFECTIVE_DPI); MDT_DEFAULT = MDT_EFFECTIVE_DPI);
TMonitorDpiType = MONITOR_DPI_TYPE; TMonitorDpiType = MONITOR_DPI_TYPE;
*) *)
pscr:=TGdkScreen.get_default; // MDT_EFFECTIVE_DPI
w:=pscr^.get_width; dpiX := Round(gdk_screen_get_resolution(gdk_screen_get_default));
w_mm:=pscr^.get_width_mm; dpiY := dpiX;
h:=pscr^.get_height; Result := 0;
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);
end; end;
function TGtk3WidgetSet.GetFocus: HWND; function TGtk3WidgetSet.GetFocus: HWND;