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

Поправила баг : отсутствовала проверка выхода за границы Box-оператора, когда...

Поправила баг : отсутствовала проверка выхода за границы Box-оператора, когда оператор находится в начале строки

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@66276 954022d7-b5bf-4e40-9824-e11837661b57
parent c54b9577
...@@ -2490,7 +2490,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -2490,7 +2490,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
{ {
bOverXEnd = X + WordLen + SpaceLen + BrkLen > XEnd; // BrkLen прибавляем дла случая, если идут подряд Brk Operators в конце bOverXEnd = X + WordLen + SpaceLen + BrkLen > XEnd; // BrkLen прибавляем дла случая, если идут подряд Brk Operators в конце
if(X + WordLen + SpaceLen + BrkLen > XEnd) if(bOverXEnd)
{ {
// если вышли за границы не обновляем параметр bInsideOper, т.к. если уже были breakOperator, то, соответственно, он уже выставлен в true // если вышли за границы не обновляем параметр bInsideOper, т.к. если уже были breakOperator, то, соответственно, он уже выставлен в true
// а если на этом уровне не было breakOperator, то и обновлять его нне нужо // а если на этом уровне не было breakOperator, то и обновлять его нне нужо
......
...@@ -4170,16 +4170,26 @@ CMathContent.prototype.private_BoxOperEmulator = function(PRS, Box, _Depth, Prev ...@@ -4170,16 +4170,26 @@ CMathContent.prototype.private_BoxOperEmulator = function(PRS, Box, _Depth, Prev
var BoxLen = Box.size.width, var BoxLen = Box.size.width,
BoxGapRight = Box.GapRight; BoxGapRight = Box.GapRight;
if(true === this.ParaMath.Is_BrkBinBefore()) // break_operator должен идти в начале слова var bOverXEnd;
if(true === this.ParaMath.Is_BrkBinBefore()) // оператор находится в начале строки
{ {
PRS.X += PRS.SpaceLen + PRS.WordLen; bOverXEnd = PRS.X + PRS.WordLen + PRS.SpaceLen > PRS.XEnd;
if(true == PRS.MathFirstItem) if(PRS.FirstItemOnLine == false && bOverXEnd)
{ {
PRS.WordLen += BoxLen; PRS.MoveToLBP = true;
PRS.NewRange = true;
this.ParaMath.UpdateWidthLine(PRS, PRS.X - PRS.XRange);
}
else if(true == PRS.MathFirstItem)
{
PRS.WordLen += PRS.SpaceLen + PRS.WordLen + BoxLen;
} }
else else
{ {
PRS.X += PRS.SpaceLen + PRS.WordLen;
// обновим : начало нового слова - конец предыдущего Run // обновим : начало нового слова - конец предыдущего Run
PRS.bInsideOper = true; PRS.bInsideOper = true;
PRS.FirstItemOnLine = false; PRS.FirstItemOnLine = false;
...@@ -4195,7 +4205,7 @@ CMathContent.prototype.private_BoxOperEmulator = function(PRS, Box, _Depth, Prev ...@@ -4195,7 +4205,7 @@ CMathContent.prototype.private_BoxOperEmulator = function(PRS, Box, _Depth, Prev
} }
else else
{ {
var bOverXEnd = PRS.X + PRS.SpaceLen + PRS.WordLen + BoxLen - BoxGapRight > PRS.XEnd; bOverXEnd = PRS.X + PRS.SpaceLen + PRS.WordLen + BoxLen - BoxGapRight > PRS.XEnd;
PRS.OperGapRight = BoxGapRight; PRS.OperGapRight = BoxGapRight;
......
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