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