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

Неправильно расчитывалось выравнивания строк, когда оператор находился в...

Неправильно расчитывалось выравнивания строк, когда оператор находился в начале следующей строки. Баг выявлен при CopyPaste формулы в сторонний редактор.
Файл "неправильно расчитывалось выравнивания строк, оператор в начале строки.docx"

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@67830 954022d7-b5bf-4e40-9824-e11837661b57
parent 13a5393f
......@@ -2509,7 +2509,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
{
var WorLenCompareOper = WordLen + X - XRange + (bOperBefore ? SpaceLen : BrkLen);
var bOverXEnd;
var bOverXEnd, bOverXEndMWordLarge;
var bNotUpdBreakOper = false;
var bCompareWrapIndent = PRS.bFirstLine == true ? WorLenCompareOper > PRS.WrapIndent : true;
......@@ -2520,6 +2520,8 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
if(bOperBefore) // оператор "до" => оператор находится в начале строки
{
bOverXEnd = X + WordLen + SpaceLen + BrkLen > XEnd; // BrkLen прибавляем дла случая, если идут подряд Brk Operators в конце
bOverXEndMWordLarge = X + WordLen + SpaceLen > XEnd; // ширину самого оператора не учитываем при расчете bMathWordLarge, т.к. он будет находится на следующей строке
if(bOverXEnd)
{
......@@ -2533,7 +2535,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
}
else
{
if(Word == true)
if(Word == true && bOverXEndMWordLarge == true)
{
bMathWordLarge = true;
}
......@@ -2592,6 +2594,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
else // оператор "после" => оператор находится в конце строки
{
bOverXEnd = X + WordLen + BrkLen - Item.GapRight > XEnd;
bOverXEndMWordLarge = bOverXEnd;
if(bOverXEnd && FirstItemOnLine === false) // Слово не убирается в отрезке. Переносим слово в следующий отрезок
{
......@@ -2608,7 +2611,7 @@ ParaRun.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
// осуществляем здесь, чтобы не изменить GapRight в случае, когда новое слово не убирается на break_Operator
OperGapRight = Item.GapRight;
if(bOverXEnd) // FirstItemOnLine == true
if(bOverXEndMWordLarge == true) // FirstItemOnLine == true
{
bMathWordLarge = 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