diff options
Diffstat (limited to 'gfx/x11')
-rw-r--r-- | gfx/x11/fpgfxpackage.lpk | 6 | ||||
-rw-r--r-- | gfx/x11/fpgfxpackage.pas | 2 | ||||
-rw-r--r-- | gfx/x11/gfx_x11.pas | 5 |
3 files changed, 10 insertions, 3 deletions
diff --git a/gfx/x11/fpgfxpackage.lpk b/gfx/x11/fpgfxpackage.lpk index c58916a3..5c02e39b 100644 --- a/gfx/x11/fpgfxpackage.lpk +++ b/gfx/x11/fpgfxpackage.lpk @@ -21,7 +21,7 @@ <License Value="Modified LGPL "/> <Version Minor="4"/> - <Files Count="9"> + <Files Count="10"> <Item1> <Filename Value="../gfxbase.pas"/> <UnitName Value="GfxBase"/> @@ -58,6 +58,10 @@ <Filename Value="../commandlineparams.pas"/> <UnitName Value="CommandLineParams"/> </Item9> + <Item10> + <Filename Value="../fputf8utils.pas"/> + <UnitName Value="fpUTF8Utils"/> + </Item10> </Files> <LazDoc Paths="../../docs/xml/gfx/"/> <RequiredPkgs Count="1"> diff --git a/gfx/x11/fpgfxpackage.pas b/gfx/x11/fpgfxpackage.pas index 84c4bda2..f6e51e3b 100644 --- a/gfx/x11/fpgfxpackage.pas +++ b/gfx/x11/fpgfxpackage.pas @@ -8,7 +8,7 @@ interface uses GfxBase, GFX_X11, gfxinterface, schar16, unitkeys, fpgfx, GELDirty, GELImage, - CommandLineParams; + CommandLineParams, fpUTF8Utils; implementation diff --git a/gfx/x11/gfx_x11.pas b/gfx/x11/gfx_x11.pas index 7128c4bf..1deba25a 100644 --- a/gfx/x11/gfx_x11.pas +++ b/gfx/x11/gfx_x11.pas @@ -621,6 +621,7 @@ function TX11Canvas.TextExtent(const AText: String): TSize; var {$IFDEF XftSupport} extents : TXGlyphInfo; + WideText: WideString; {$ELSE} Direction, FontAscent, FontDescent: LongInt; CharStruct: TXCharStruct; @@ -634,7 +635,9 @@ begin else begin {$IFDEF XftSupport} - XftTextExtents8(GFApplication.Handle, FFontStruct.FontData, PChar(AText), Length(AText), extents); + WideText := Utf8Decode(AText); +// XftTextExtents8(GFApplication.Handle, FFontStruct.FontData, PChar(AText), Length(AText), extents); + XftTextExtents16(GFApplication.Handle, FFontStruct.FontData, PChar(WideText), Length(WideText), extents); Result.cx := extents.xOff; Result.cy := extents.yOff; {$ELSE} |