Commit dcf16d15 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@54174 954022d7-b5bf-4e40-9824-e11837661b57
parent 746947f1
......@@ -6112,7 +6112,7 @@ Paragraph.prototype =
// сохраним позиции начала и конца продолжительных одинаковых настроек
// выделения, совместного редактирования и поиска соответственно.
PDSH.Reset_Range( CurPage, CurLine, CurRange, X, Y0, Y1 );
PDSH.Reset_Range( CurPage, CurLine, CurRange, X, Y0, Y1, _Range.SpacesSkip + _Range.Spaces );
if ( true === this.Numbering.Check_Range(CurRange, CurLine) )
{
......@@ -7098,7 +7098,7 @@ Paragraph.prototype =
var Range = Line.Ranges[CurRange];
var X = Range.XVisible;
PDSL.Reset_Range( CurRange, X );
PDSL.Reset_Range( CurRange, X, Range.SpacesSkip + Range.Spaces );
var StartPos = Range.StartPos;
var EndPos = Range.EndPos;
......@@ -19849,6 +19849,8 @@ function CParagraphDrawStateHightlights()
this.X = 0;
this.Y0 = 0;
this.Y1 = 0;
this.Spaces = 0;
}
CParagraphDrawStateHightlights.prototype =
......@@ -19866,7 +19868,7 @@ CParagraphDrawStateHightlights.prototype =
this.CurPos = new CParagraphContentPos();
},
Reset_Range : function(Page, Line, Range, X, Y0, Y1)
Reset_Range : function(Page, Line, Range, X, Y0, Y1, SpacesCount)
{
this.Page = Page;
this.Line = Line;
......@@ -19880,6 +19882,8 @@ CParagraphDrawStateHightlights.prototype =
this.X = X;
this.Y0 = Y0;
this.Y1 = Y1;
this.Spaces = SpacesCount;
}
};
......@@ -19947,6 +19951,7 @@ function CParagraphDrawStateLines()
this.X = 0;
this.BaseLine = 0;
this.UnderlineOffset = 0;
this.Spaces = 0;
}
CParagraphDrawStateLines.prototype =
......@@ -19976,14 +19981,12 @@ CParagraphDrawStateLines.prototype =
this.Spelling.Clear();
},
Reset_Range : function(Range, X)
Reset_Range : function(Range, X, Spaces)
{
this.Range = Range;
this.X = X;
this.Range = Range;
this.X = X;
this.Spaces = Spaces;
}
};
var g_oPDSH = new CParagraphDrawStateHightlights();
......
......@@ -1950,6 +1950,8 @@ ParaRun.prototype =
// т.к. класс CParaRun попадает или не попадает в комментарий целиком.
var bDrawSearch = false;
// TODO: Переделать поиск
// if ( true === bDrawSearch )
// {
// for ( var SId in SearchResults )
......@@ -2005,23 +2007,16 @@ ParaRun.prototype =
}
case para_Space:
{
// TODO: Переделать здесь
// // Пробелы в конце строки (и строку состоящую из пробелов) не подчеркиваем, не зачеркиваем и не выделяем
// if ( Pos >= _Range.StartPos2 && Pos <= _Range.EndPos2 )
// {
// if ( CommentsFlag != comments_NoComment && bDrawComments )
// aComm.Add( Y0, Y1, X, X + Item.WidthVisible, 0, 0, 0, 0, { Active : CommentsFlag === comments_ActiveComment ? true : false } );
// else if ( highlight_None != HighLight )
// aHigh.Add( Y0, Y1, X, X + Item.WidthVisible, 0, HighLight.r, HighLight.g, HighLight.b );
// }
if ( CommentsFlag != comments_NoComment && bDrawComments )
aComm.Add( Y0, Y1, X, X + Item.WidthVisible, 0, 0, 0, 0, { Active : CommentsFlag === comments_ActiveComment ? true : false } );
else if ( highlight_None != HighLight )
aHigh.Add( Y0, Y1, X, X + Item.WidthVisible, 0, HighLight.r, HighLight.g, HighLight.b );
// Пробелы в конце строки (и строку состоящую из пробелов) не подчеркиваем, не зачеркиваем и не выделяем
if ( PDSH.Spaces > 0 )
{
if ( CommentsFlag != comments_NoComment && bDrawComments )
aComm.Add( Y0, Y1, X, X + Item.WidthVisible, 0, 0, 0, 0, { Active : CommentsFlag === comments_ActiveComment ? true : false } );
else if ( highlight_None != HighLight )
aHigh.Add( Y0, Y1, X, X + Item.WidthVisible, 0, HighLight.r, HighLight.g, HighLight.b );
//-------------------------------------------
PDSH.Spaces--;
}
if ( true === bDrawSearch )
aFind.Add( Y0, Y1, X, X + Item.WidthVisible, 0, 0, 0, 0 );
......@@ -2213,6 +2208,7 @@ ParaRun.prototype =
var AutoColor = PDSL.AutoColor;
var CurColor = new CDocumentColor( 0, 0, 0, false );
// Выставляем цвет обводки
if ( true === PDSL.VisitedHyperlink )
CurColor.Set( 128, 0, 151, 255 );
......@@ -2262,28 +2258,19 @@ ParaRun.prototype =
}
case para_Space:
{
// TODO: реализовать через счетчик пробелов в начале и в конце
// if ( Pos >= _Range.StartPos2 && Pos <= _Range.EndPos2 )
// {
// if ( true === CurTextPr.DStrikeout )
// aDStrikeout.Add( StrikeoutY, StrikeoutY, X, X + Item.WidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b );
// else if ( true === CurTextPr.Strikeout )
// aStrikeout.Add( StrikeoutY, StrikeoutY, X, X + Item.WidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b );
//
// if ( true === CurTextPr.Underline )
// aUnderline.Add( UnderlineY, UnderlineY, X, X + Item.WidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b );
// }
if ( true === CurTextPr.DStrikeout )
aDStrikeout.Add( StrikeoutY, StrikeoutY, X, X + Item.WidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b );
else if ( true === CurTextPr.Strikeout )
aStrikeout.Add( StrikeoutY, StrikeoutY, X, X + Item.WidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b );
if ( true === CurTextPr.Underline )
aUnderline.Add( UnderlineY, UnderlineY, X, X + Item.WidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b );
// Пробелы, идущие в конце строки, не подчеркиваем и не зачеркиваем
if ( PDSL.Spaces > 0 )
{
if ( true === CurTextPr.DStrikeout )
aDStrikeout.Add( StrikeoutY, StrikeoutY, X, X + Item.WidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b );
else if ( true === CurTextPr.Strikeout )
aStrikeout.Add( StrikeoutY, StrikeoutY, X, X + Item.WidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b );
//-----------------------------------------------------------------------------------
if ( true === CurTextPr.Underline )
aUnderline.Add( UnderlineY, UnderlineY, X, X + Item.WidthVisible, LineW, CurColor.r, CurColor.g, CurColor.b );
PDSL.Spaces--;
}
X += Item.WidthVisible;
......
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