From a471e2d12c1b26f7b0ba2074dfbf7d47695782d0 Mon Sep 17 00:00:00 2001 From: jesus Date: Fri, 5 Apr 2013 20:10:53 +0000 Subject: [PATCH] CairoCanvas, for alignment, logical rect should be used instead of ink rect, fix alignment to the right git-svn-id: trunk@40722 - --- components/cairocanvas/cairocanvas.pas | 6 +++--- components/cairocanvas/tests/24217/unit1.pas | 10 ++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/components/cairocanvas/cairocanvas.pas b/components/cairocanvas/cairocanvas.pas index 6ab56863dd..9bef05ac70 100644 --- a/components/cairocanvas/cairocanvas.pas +++ b/components/cairocanvas/cairocanvas.pas @@ -934,9 +934,9 @@ begin pango_layout_set_text(layout, pchar(s1), -1); pango_layout_get_extents(Layout, @ink, @logical); case Style.Alignment of - taLeftJustify: x := StartLeft; - taCenter: x := BoxLeft + BoxWidth/2 - ink.width/PANGO_SCALE/2; - taRightJustify: x := BoxLeft+BoxWidth - ink.Width/PANGO_SCALE; + taLeftJustify: x := StartLeft; + taCenter: x := BoxLeft + BoxWidth/2 - logical.width/PANGO_SCALE/2; + taRightJustify: x := BoxLeft+BoxWidth - logical.Width/PANGO_SCALE; end; cairo_move_to(cr, x, y); //DebugLn('TextRect ',S1); diff --git a/components/cairocanvas/tests/24217/unit1.pas b/components/cairocanvas/tests/24217/unit1.pas index 358b5cf82b..54091991a7 100644 --- a/components/cairocanvas/tests/24217/unit1.pas +++ b/components/cairocanvas/tests/24217/unit1.pas @@ -233,9 +233,11 @@ procedure TForm1.DrawOther(cnv: TCanvas; XDPI, YDPI: Integer); const CTEXT='Hola'; Par = - 'Uno' + LineEnding+ - 'noU' + LineEnding+ - 'oUn' + LineEnding+ + '1.111' + LineEnding+ + '0.000' + LineEnding+ + '.101' + LineEnding+ + 'M.Unl' + LineEnding+ + '.UnlM' + LineEnding+ '01.' + LineEnding+ '1.0' + LineEnding+ '.01'; @@ -269,7 +271,7 @@ begin cnv.TextOut(R.Left, R.Top, 'Line3'); OffsetRect(R, 0, sz.cy); R := Rect(XDPI*4, YDPI*2, Round(XDPI*6), round(YDPI*6)); - cnv.Font.Name := 'Arial'; + cnv.Font.Name := 'Sans'; cnv.Font.Size := 40; cnv.Font.Color := clGreen; cnv.Brush.Style := bsClear;