mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-21 08:39:50 +01:00
gtk3: removed workaround in GetTextExtentPoint() so it returns correct width of text.
git-svn-id: trunk@59648 -
This commit is contained in:
parent
5238df969e
commit
e8c7aff5f5
@ -2629,9 +2629,6 @@ end;
|
|||||||
|
|
||||||
function TGtk3WidgetSet.GetTextExtentPoint(DC: HDC; Str: PChar; Count: Integer;
|
function TGtk3WidgetSet.GetTextExtentPoint(DC: HDC; Str: PChar; Count: Integer;
|
||||||
var Size: TSize): Boolean;
|
var Size: TSize): Boolean;
|
||||||
var
|
|
||||||
ACharWidth: gint;
|
|
||||||
ADigitWidth: gint;
|
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
if not IsValidDC(DC) then
|
if not IsValidDC(DC) then
|
||||||
@ -2642,17 +2639,7 @@ begin
|
|||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
TGtk3DeviceContext(DC).CurrentFont.Layout^.set_text(Str, Count);
|
TGtk3DeviceContext(DC).CurrentFont.Layout^.set_text(Str, Count);
|
||||||
//this is not accurate when comparing to gtk2 or qt. Text width is smaller so we add avg size of digit char
|
|
||||||
//until this is fixed somehow.
|
|
||||||
TGtk3DeviceContext(DC).CurrentFont.Layout^.get_pixel_size(@Size.Cx, @Size.CY);
|
TGtk3DeviceContext(DC).CurrentFont.Layout^.get_pixel_size(@Size.Cx, @Size.CY);
|
||||||
// Ascent := TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_metrics(TGtk3DeviceContext(DC).CurrentFont.Layout^.get_font_description, TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_language)^.get_ascent;
|
|
||||||
// Descent := TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_metrics(TGtk3DeviceContext(DC).CurrentFont.Layout^.get_font_description, TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_language)^.get_descent;
|
|
||||||
ACharWidth := TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_metrics(TGtk3DeviceContext(DC).CurrentFont.Layout^.get_font_description, TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_language)^.get_approximate_char_width;
|
|
||||||
ADigitWidth := TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_metrics(TGtk3DeviceContext(DC).CurrentFont.Layout^.get_font_description, TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_language)^.get_approximate_digit_width;
|
|
||||||
// get_layout^.get_pixel_size(@Ascent, @Descent);
|
|
||||||
// TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_metrics(TGtk3DeviceContext(DC).CurrentFont.Layout^.get_font_description, TGtk3DeviceContext(DC).CurrentFont.Layout^.get_context^.get_language)^.
|
|
||||||
inc(Size.cx, (ADigitWidth div PANGO_SCALE) + 1);
|
|
||||||
// dec(Size.cy, Descent div PANGO_SCALE);
|
|
||||||
// DebugLn('TGtk3WidgetSet.GetTextExtentPoint pixel size is ',dbgs(Size),
|
// DebugLn('TGtk3WidgetSet.GetTextExtentPoint pixel size is ',dbgs(Size),
|
||||||
// ' avgcharwidth ',dbgs(ACharWidth div PANGO_SCALE),' avgdigitwidth ',dbgs(ADigitWidth div PANGO_SCALE));
|
// ' avgcharwidth ',dbgs(ACharWidth div PANGO_SCALE),' avgdigitwidth ',dbgs(ADigitWidth div PANGO_SCALE));
|
||||||
Result := True;
|
Result := True;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user