From d433d82e1ce9e633abd6659d973d7e8728fc2348 Mon Sep 17 00:00:00 2001 From: zeljko Date: Wed, 10 Oct 2012 09:03:32 +0000 Subject: [PATCH] Gtk2: LineTo and MoveToEx must take hdc offset into account.issue #23057 git-svn-id: trunk@39034 - --- lcl/interfaces/gtk2/gtk2winapi.inc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lcl/interfaces/gtk2/gtk2winapi.inc b/lcl/interfaces/gtk2/gtk2winapi.inc index 09afcfcad2..9c0bfaf871 100644 --- a/lcl/interfaces/gtk2/gtk2winapi.inc +++ b/lcl/interfaces/gtk2/gtk2winapi.inc @@ -6464,14 +6464,14 @@ begin FromPt := DevCtx.PenPos; LPtoDP(DC, FromPt, 1); - ToPt := Point(X, Y); + ToPt := Point(X+DevCtx.Offset.X, Y+DevCtx.Offset.Y); LPToDP(DC, ToPt, 1); {$IFDEF DebugGDK}BeginGDKErrorTrap;{$ENDIF} gdk_draw_line(DevCtx.Drawable, DevCtx.GC, FromPt.X, FromPt.Y, ToPt.X, ToPt.Y); {$IFDEF DebugGDK}EndGDKErrorTrap;{$ENDIF} - DevCtx.PenPos := Point(X, Y); + DevCtx.PenPos := Point(X+DevCtx.Offset.X, Y+DevCtx.Offset.Y); Result := True; end; @@ -6629,15 +6629,16 @@ end; ------------------------------------------------------------------------------} function TGtk2WidgetSet.MoveToEx(DC: HDC; X, Y: Integer; OldPoint: PPoint): Boolean; +var + DevCtx: TGtkDeviceContext absolute DC; begin Result := IsValidDC(DC); if Result then - with TGtkDeviceContext(DC) do + with DevCtx do begin if Assigned(OldPoint) then OldPoint^ := PenPos; - - PenPos := Point(X, Y); + PenPos := Point(X+DevCtx.Offset.X, Y+DevCtx.Offset.Y) end; end;