mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 20:59:12 +02:00
fpvectorial-html: Fixes bug in positioning of raster image inside table, fixes crash in table without caption
git-svn-id: trunk@51958 -
This commit is contained in:
parent
d93952201f
commit
5aa799810a
@ -2561,12 +2561,21 @@ procedure TvEmbeddedVectorialDoc.Render(ADest: TFPCustomCanvas;
|
|||||||
|
|
||||||
var
|
var
|
||||||
lPage: TvPage;
|
lPage: TvPage;
|
||||||
|
lPageHeight: Integer;
|
||||||
|
lMulY, lY: Double;
|
||||||
begin
|
begin
|
||||||
inherited Render(ADest, ARenderInfo, ADestX, ADestY, AMulX, AMulY, ADoDraw);
|
inherited Render(ADest, ARenderInfo, ADestX, ADestY, AMulX, AMulY, ADoDraw);
|
||||||
|
|
||||||
lPage := Document.GetPage(0);
|
lPage := Document.GetPage(0);
|
||||||
|
lPageHeight := Round(lPage.Height);
|
||||||
|
lPage.GetNaturalRenderPos(lPageHeight, lMulY);
|
||||||
|
lY := Y;
|
||||||
|
if AmulY * lMulY < 0 then
|
||||||
|
begin
|
||||||
|
lY := Y + lPage.Height;
|
||||||
|
end;
|
||||||
if ADoDraw then
|
if ADoDraw then
|
||||||
lPage.Render(ADest, CoordToCanvasX(X), CoordToCanvasY(Y), AMulX, AMulY);
|
lPage.Render(ADest, CoordToCanvasX(X), CoordToCanvasY(Y), AMulX, AMulY * lMulY);
|
||||||
|
|
||||||
CalcEntityCanvasMinMaxXY(ARenderInfo, CoordToCanvasX(X), CoordToCanvasY(Y));
|
CalcEntityCanvasMinMaxXY(ARenderInfo, CoordToCanvasX(X), CoordToCanvasY(Y));
|
||||||
CalcEntityCanvasMinMaxXY(ARenderInfo,
|
CalcEntityCanvasMinMaxXY(ARenderInfo,
|
||||||
@ -8106,7 +8115,7 @@ begin
|
|||||||
begin
|
begin
|
||||||
OldTextX := lEntity.X;
|
OldTextX := lEntity.X;
|
||||||
OldTextY := lEntity.Y;
|
OldTextY := lEntity.Y;
|
||||||
lEntity.X := CoordToCanvasX(lEntity.X + X + lCurWidth, ADestX, AMulX);
|
lEntity.X := lEntity.X + X + lCurWidth;
|
||||||
lEntity.Y := lEntity.Y + Y;
|
lEntity.Y := lEntity.Y + Y;
|
||||||
|
|
||||||
lEntity.Render(ADest, lEntityRenderInfo, ADestX, ADestY + lHeight_px, AMulX, AMulY, ADoDraw);
|
lEntity.Render(ADest, lEntityRenderInfo, ADestX, ADestY + lHeight_px, AMulX, AMulY, ADoDraw);
|
||||||
|
@ -371,7 +371,7 @@ var
|
|||||||
lCurNode, lCurSubnode: TDOMNode;
|
lCurNode, lCurSubnode: TDOMNode;
|
||||||
lNodeName, lNodeValue: DOMString;
|
lNodeName, lNodeValue: DOMString;
|
||||||
CurRow: TvTableRow;
|
CurRow: TvTableRow;
|
||||||
Caption_Cell: TvTableCell;
|
Caption_Cell: TvTableCell = nil;
|
||||||
CurCellPara: TvParagraph;
|
CurCellPara: TvParagraph;
|
||||||
// attributes
|
// attributes
|
||||||
i, lBorderNr: Integer;
|
i, lBorderNr: Integer;
|
||||||
@ -456,7 +456,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
// the caption spans all columns
|
// the caption spans all columns
|
||||||
Caption_Cell.SpannedCols := CurTable.GetColCount();
|
if Caption_Cell <> nil then
|
||||||
|
Caption_Cell.SpannedCols := CurTable.GetColCount();
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TvHTMLVectorialReader.ReadTableRowNode(ATable: TvTable; ANode: TDOMNode;
|
function TvHTMLVectorialReader.ReadTableRowNode(ATable: TvTable; ANode: TDOMNode;
|
||||||
|
Loading…
Reference in New Issue
Block a user