Commit facb5fc7 authored by Anna.Pavlova's avatar Anna.Pavlova Committed by Alexander.Trofimov

1. Поправлен баг с ограничением XEnd, когда формула располагается слева от картинки

2. Поправлен баг с выравниванием формулы, когда формула располагается справа от картинки

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@63309 954022d7-b5bf-4e40-9824-e11837661b57
parent c8002770
......@@ -748,19 +748,15 @@ ParaMath.prototype.Get_AlignToLine = function(_CurLine, _CurRange, _Page, _X, _X
var wrapIndent = MathSettings.Get_WrapIndent(WrapState);
var XStart, XEnd;
var XLimits = {X: _X, XEnd: _XLimit};
this.private_UpdateXLimits(XLimits, false);
XStart = this.ParaMathRPI.Wrap == WRAP_MATH_RIGHT ? this.ParaMathRPI.RangesX1 : _X;
XEnd = this.ParaMathRPI.Wrap == WRAP_MATH_LEFT ? this.ParaMathRPI.RangesX0 : _XLimit;
XStart += MathSettings.Get_LeftMargin(WrapState);
XEnd -= MathSettings.Get_RightMargin(WrapState);
var XStart = XLimits.X, XEnd = XLimits.XEnd;
var Jc = this.Get_Align();
var LinesCount = this.Root.protected_GetLinesCount();
var StartLineWidth = LinesCount > 0 ? this.PageInfo.GetStarLinetWidth() : 0; // если страница не первая, то ширину первой строки формулы не учитываем
var W = 0;
......@@ -779,7 +775,7 @@ ParaMath.prototype.Get_AlignToLine = function(_CurLine, _CurRange, _Page, _X, _X
W = MaxW;
}
if(this.Root.IsFirstRange(_CurLine, _CurRange)) // первая строка первой страницы, если строка разбивается на несколько отрезко, то это уже будет inline-формула
if(this.Root.IsStartLine(_CurLine)) // первая строка первой страницы, если строка разбивается на несколько отрезко, то это уже будет inline-формула
{
switch(Jc)
{
......@@ -1213,6 +1209,9 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
//здесь обновляем WrapState, исходя из этого параметра будем считать WrapIndent
this.PageInfo.UpdateCurrentWrap(DispDef, bInline);
var X = PRS.X,
XEnd = PRS.XEnd;
if(bInline == false)
this.private_UpdateXLimits(PRS, true);
......@@ -1243,6 +1242,9 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
}
}
PRS.X = X;
PRS.XEnd = XEnd;
this.ParaMathRPI.ClearRecalculate();
};
ParaMath.prototype.private_InitWrapSettings = function(PRS)
......@@ -1382,38 +1384,38 @@ ParaMath.prototype.private_RecalculateRoot = function(PRS, ParaPr, Depth)
this.UpdateWidthLine(PRS, WidthLine);
}
};
ParaMath.prototype.private_UpdateXLimits = function(PRS, bRecalculate)
ParaMath.prototype.private_UpdateXLimits = function(Struct, bRecalculate)
{
var MathSettings = Get_WordDocumentDefaultMathSettings();
if(this.ParaMathRPI.Wrap == WRAP_MATH_LEFT)
{
PRS.XEnd = this.ParaMathRPI.RangesX0;
Struct.XEnd = this.ParaMathRPI.RangesX0;
}
else if(this.ParaMathRPI.Wrap == WRAP_MATH_RIGHT)
{
PRS.X = this.ParaMathRPI.RangesX1;
Struct.X = this.ParaMathRPI.RangesX1;
}
var WrapState = this.PageInfo.GetCurrentWrapState();
PRS.X += MathSettings.Get_LeftMargin(WrapState);
PRS.XEnd -= MathSettings.Get_RightMargin(WrapState);
Struct.X += MathSettings.Get_LeftMargin(WrapState);
Struct.XEnd -= MathSettings.Get_RightMargin(WrapState);
if(bRecalculate == true)
{
var WrapIndent = MathSettings.Get_WrapIndent(WrapState);
PRS.WrapIndent = WrapIndent;
Struct.WrapIndent = WrapIndent;
if(this.Root.IsStartLine() == false)
if(this.Root.IsStartLine(Struct.Line) == false)
{
PRS.X += WrapIndent;
PRS.bCompareWrapIndent = false;
Struct.X += WrapIndent;
Struct.bCompareWrapIndent = false;
}
else
{
PRS.bCompareWrapIndent = true;
Struct.bCompareWrapIndent = true;
}
}
};
......
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