Gtk2: LineTo and MoveToEx must take hdc offset into account.issue #23057

git-svn-id: trunk@39034 -
This commit is contained in:
zeljko 2012-10-10 09:03:32 +00:00
parent 99d869e0a1
commit d433d82e1c

View File

@ -6464,14 +6464,14 @@ begin
FromPt := DevCtx.PenPos; FromPt := DevCtx.PenPos;
LPtoDP(DC, FromPt, 1); LPtoDP(DC, FromPt, 1);
ToPt := Point(X, Y); ToPt := Point(X+DevCtx.Offset.X, Y+DevCtx.Offset.Y);
LPToDP(DC, ToPt, 1); LPToDP(DC, ToPt, 1);
{$IFDEF DebugGDK}BeginGDKErrorTrap;{$ENDIF} {$IFDEF DebugGDK}BeginGDKErrorTrap;{$ENDIF}
gdk_draw_line(DevCtx.Drawable, DevCtx.GC, FromPt.X, FromPt.Y, ToPt.X, ToPt.Y); gdk_draw_line(DevCtx.Drawable, DevCtx.GC, FromPt.X, FromPt.Y, ToPt.X, ToPt.Y);
{$IFDEF DebugGDK}EndGDKErrorTrap;{$ENDIF} {$IFDEF DebugGDK}EndGDKErrorTrap;{$ENDIF}
DevCtx.PenPos := Point(X, Y); DevCtx.PenPos := Point(X+DevCtx.Offset.X, Y+DevCtx.Offset.Y);
Result := True; Result := True;
end; end;
@ -6629,15 +6629,16 @@ end;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
function TGtk2WidgetSet.MoveToEx(DC: HDC; X, Y: Integer; OldPoint: PPoint): Boolean; function TGtk2WidgetSet.MoveToEx(DC: HDC; X, Y: Integer; OldPoint: PPoint): Boolean;
var
DevCtx: TGtkDeviceContext absolute DC;
begin begin
Result := IsValidDC(DC); Result := IsValidDC(DC);
if Result then if Result then
with TGtkDeviceContext(DC) do with DevCtx do
begin begin
if Assigned(OldPoint) then if Assigned(OldPoint) then
OldPoint^ := PenPos; OldPoint^ := PenPos;
PenPos := Point(X+DevCtx.Offset.X, Y+DevCtx.Offset.Y)
PenPos := Point(X, Y);
end; end;
end; end;