Commit a67d226b authored by Ilya.Kirillov's avatar Ilya.Kirillov Committed by Alexander.Trofimov

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@53403 954022d7-b5bf-4e40-9824-e11837661b57
parent e2ca769f
...@@ -4,6 +4,10 @@ ...@@ -4,6 +4,10 @@
* Time: 18:28 * Time: 18:28
*/ */
var RunRangesCount = 0;
var RunRangesElementsCount = 0;
var ParaRangesCount = 0;
function ParaRun(Document) function ParaRun(Document)
{ {
this.Id = g_oIdCounter.Get_NewId(); // Id данного элемента this.Id = g_oIdCounter.Get_NewId(); // Id данного элемента
...@@ -124,15 +128,20 @@ ParaRun.prototype = ...@@ -124,15 +128,20 @@ ParaRun.prototype =
else else
this.TextRun = false; this.TextRun = false;
this.TextRun = false;
this.RecalcInfo.Recalc = true; this.RecalcInfo.Recalc = true;
this.RecalcInfo.Measure = false; this.RecalcInfo.Measure = false;
}, },
Recalculate_Range : function(PRS, ParaPr) Recalculate_Range : function( ParaPr)
{ {
RunRangesCount++;
// Сначала измеряем элементы (можно вызывать каждый раз, внутри разруливается, чтобы измерялось 1 раз) // Сначала измеряем элементы (можно вызывать каждый раз, внутри разруливается, чтобы измерялось 1 раз)
this.Recalculate_MeasureContent(); this.Recalculate_MeasureContent();
var PRS = g_oPRSW;
var CurLine = PRS.Line - this.StartLine; var CurLine = PRS.Line - this.StartLine;
if ( undefined === this.Lines[CurLine] ) if ( undefined === this.Lines[CurLine] )
{ {
...@@ -245,8 +254,11 @@ ParaRun.prototype = ...@@ -245,8 +254,11 @@ ParaRun.prototype =
var LineRule = ParaPr.Spacing.LineRule; var LineRule = ParaPr.Spacing.LineRule;
var Pos = RangeStartPos; var Pos = RangeStartPos;
while ( Pos < ContentLen )
var UpdateLineMetricsText = false;
for ( ; Pos < ContentLen; Pos++ )
{ {
RunRangesElementsCount++;
if ( false === StartWord && true === FirstItemOnLine && Math.abs( XEnd - X ) < 0.001 && RangesCount > 0 ) if ( false === StartWord && true === FirstItemOnLine && Math.abs( XEnd - X ) < 0.001 && RangesCount > 0 )
{ {
NewRange = true; NewRange = true;
...@@ -269,8 +281,7 @@ ParaRun.prototype = ...@@ -269,8 +281,7 @@ ParaRun.prototype =
// Отмечаем, что началось слово // Отмечаем, что началось слово
StartWord = true; StartWord = true;
// Пересчитаем метрику строки относительно размера данного текста UpdateLineMetricsText = true;
this.Internal_Recalculate_LineMetrics( PRS, LineRule );
// При проверке, убирается ли слово, мы должны учитывать ширину предшествующих пробелов. // При проверке, убирается ли слово, мы должны учитывать ширину предшествующих пробелов.
var LetterLen = Item.Width; var LetterLen = Item.Width;
...@@ -711,8 +722,12 @@ ParaRun.prototype = ...@@ -711,8 +722,12 @@ ParaRun.prototype =
if ( true === NewRange ) if ( true === NewRange )
break; break;
}
Pos++; if ( true === UpdateLineMetricsText )
{
// Пересчитаем метрику строки относительно размера данного текста
this.Internal_Recalculate_LineMetrics( PRS, LineRule );
} }
PRS.MoveToLBP = MoveToLBP; PRS.MoveToLBP = MoveToLBP;
......
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