Commit 8784300a authored by Ilya Kirillov's avatar Ilya Kirillov

Fixed bug with double shifting of a footnote after calculating a widow line of a paragraph.

parent 4345f1d6
...@@ -47,6 +47,8 @@ function CFootnotesController(LogicDocument) ...@@ -47,6 +47,8 @@ function CFootnotesController(LogicDocument)
this.Footnote = {}; // Список всех сносок с ключом - Id. this.Footnote = {}; // Список всех сносок с ключом - Id.
this.Pages = []; this.Pages = [];
this.NeedShift = false; // Нужно ли делать перенос после пересчета.
// Специальные сноски // Специальные сноски
this.ContinuationNoticeFootnote = null; this.ContinuationNoticeFootnote = null;
this.ContinuationSeparatorFootnote = null; this.ContinuationSeparatorFootnote = null;
...@@ -190,6 +192,8 @@ CFootnotesController.prototype.Recalculate = function(nPageAbs, nColumnAbs, Y, Y ...@@ -190,6 +192,8 @@ CFootnotesController.prototype.Recalculate = function(nPageAbs, nColumnAbs, Y, Y
var Bounds = Footnote.Get_PageBounds(0); var Bounds = Footnote.Get_PageBounds(0);
CurY += Bounds.Bottom - Bounds.Top; CurY += Bounds.Bottom - Bounds.Top;
} }
this.NeedShift = true;
}; };
/** /**
* Получаем суммарную высоту, занимаемую сносками на заданной странице. * Получаем суммарную высоту, занимаемую сносками на заданной странице.
...@@ -261,6 +265,9 @@ CFootnotesController.prototype.Draw = function(nPageAbs, pGraphics) ...@@ -261,6 +265,9 @@ CFootnotesController.prototype.Draw = function(nPageAbs, pGraphics)
*/ */
CFootnotesController.prototype.Shift = function(nPageAbs, nColumnAbs, dX, dY) CFootnotesController.prototype.Shift = function(nPageAbs, nColumnAbs, dX, dY)
{ {
if (true !== this.NeedShift)
return;
var oColumn = this.private_GetPageColumn(nPageAbs, nColumnAbs); var oColumn = this.private_GetPageColumn(nPageAbs, nColumnAbs);
if (!oColumn) if (!oColumn)
return; return;
...@@ -277,6 +284,8 @@ CFootnotesController.prototype.Shift = function(nPageAbs, nColumnAbs, dX, dY) ...@@ -277,6 +284,8 @@ CFootnotesController.prototype.Shift = function(nPageAbs, nColumnAbs, dX, dY)
var Footnote = oColumn.Elements[nIndex]; var Footnote = oColumn.Elements[nIndex];
Footnote.Shift(0, dX, dY); Footnote.Shift(0, dX, dY);
} }
this.NeedShift = false;
}; };
/** /**
* Добавляем заданную сноску на страницу для пересчета. * Добавляем заданную сноску на страницу для пересчета.
......
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