Commit 2fe5b5e8 authored by Ilya Kirillov's avatar Ilya Kirillov

Bug #32097 Исправлен баг с позиционированием автофигур в колонтитуле, у...

Bug #32097 Исправлен баг с позиционированием автофигур в колонтитуле, у которых расположение зависит от границ колонтитула.
parent 759a3d22
......@@ -1494,6 +1494,13 @@ CHeaderFooterController.prototype =
FooterDrawings = Footer.Content.Get_AllDrawingObjects([]);
FooterTables = Footer.Content.Get_AllFloatElements();
}
// Подправляем позиции автофигур с учетом возможно изменившихся границ колонтитулов. Делаем это для всех автофигур,
// потому что колонтитулы рассчитываются первыми на странице и внутри них нет обтекания.
var PageLimits = this.LogicDocument.Get_PageContentStartPos(PageIndex);
this.private_UpdateDrawingVerticalPositions(HeaderDrawings, PageLimits.Y, PageLimits.YLimit);
this.private_UpdateDrawingVerticalPositions(FooterDrawings, PageLimits.Y, PageLimits.YLimit);
this.LogicDocument.DrawingObjects.mergeDrawings(PageIndex, HeaderDrawings, HeaderTables, FooterDrawings, FooterTables);
if ( true === bRecalcHeader || true === bRecalcFooter )
return true;
......@@ -1501,6 +1508,18 @@ CHeaderFooterController.prototype =
return false;
},
private_UpdateDrawingVerticalPositions : function(Drawings, HeaderY, FooterY)
{
if (Drawings)
{
for (var Index = 0, Count = Drawings.length; Index < Count; ++Index)
{
var Drawing = Drawings[Index];
Drawing.Update_PositionYHeaderFooter(HeaderY, FooterY);
}
}
},
// Отрисовка колонтитулов на данной странице
Draw : function(nPageIndex, pGraphics)
{
......
......@@ -3816,6 +3816,15 @@ CAnchorPosition.prototype =
return this.CalcY;
},
Update_PositionYHeaderFooter : function(TopMarginY, BottomMarginY)
{
var TopY = Math.max(this.Page_Y, Math.min(TopMarginY, this.Page_H));
var BottomY = Math.max(this.Page_Y, Math.min(BottomMarginY, this.Page_H));
this.Top_Margin = TopY;
this.Bottom_Margin = this.Page_H - BottomY;
},
Correct_Values : function(bInline, PageLimits, AllowOverlap, UseTextWrap, OtherFlowObjects)
{
if ( true != bInline )
......@@ -4883,6 +4892,14 @@ ParaDrawing.prototype =
this.useWrap = this.Use_TextWrap();
},
Update_PositionYHeaderFooter : function(TopMarginY, BottomMarginY)
{
this.Internal_Position.Update_PositionYHeaderFooter(TopMarginY, BottomMarginY);
this.Internal_Position.Calculate_Y(this.Is_Inline(), this.PositionV.RelativeFrom, this.PositionV.Align, this.PositionV.Value, this.PositionV.Percent);
this.Y = this.Internal_Position.CalcY;
this.updatePosition3(this.PageNum, this.X, this.Y, this.PageNum);
},
Reset_SavedPosition : function()
{
this.PositionV_Old = undefined;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment