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

Исправлен баг с обновлением информации о секциях после удаления(баг 25284)....

Исправлен баг с обновлением информации о секциях после удаления(баг 25284). Сделано, чтобы при добавлении буквицы, если выделено более 1 параграфа, в буквицу добавлялся ровно 1 символ (баг 25286). Исправлен баг с селектом (баг 25276). 

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@57209 954022d7-b5bf-4e40-9824-e11837661b57
parent 504eaf7b
......@@ -10209,7 +10209,7 @@ CDocument.prototype =
NextObj = null;
for ( var Index = 0; Index < Count; Index++ )
{
{
this.Content[Position + Index].PreDelete();
}
......@@ -13455,7 +13455,7 @@ CDocumentSectionsInfo.prototype =
{
var CurPos = this.Elements[Index].Index;
if ( CurPos === Pos && CurPos < Pos + Count )
if ( CurPos >= Pos && CurPos < Pos + Count )
{
this.Elements.splice( Index, 1 );
Len--;
......
......@@ -4630,13 +4630,13 @@ Paragraph.prototype =
}
}
}
else if ( true !== this.Selection_IsEmpty(true) )
{
else if ( true !== this.Selection_IsEmpty(true) && ( ( 1 === Direction && true === this.Selection.StartManually ) || ( 1 !== Direction && true === this.Selection.EndManually ) ) )
{
// Эта ветка нужна для снятие выделения с плавающих объектов, стоящих в начале параграфа, когда параграф
// выделен не весь. Заметим, что это ветка имеет смысл, только при direction = 1, поэтому выделен весь
// параграф или нет, проверяется попаданием para_End в селект. Кроме того, ничего не делаем с селектом,
// если он пустой.
var bNeedCorrectLeftPos = true;
var _StartPos = Math.min( StartPos, EndPos );
var _EndPos = Math.max( StartPos, EndPos );
......@@ -6592,7 +6592,8 @@ Paragraph.prototype =
this.Selection.Use = true;
this.Selection.Start = true;
this.Selection.Flag = selectionflag_Common;
this.Selection.StartManually = true;
// Выставим текущую позицию
this.Set_ParaContentPos( SearchPosXY2.Pos, true, SearchPosXY2.Line, SearchPosXY2.Range );
......@@ -6613,6 +6614,8 @@ Paragraph.prototype =
this.CurPos.RealX = X;
this.CurPos.RealY = Y;
this.Selection.EndManually = true;
// Найдем позицию в контенте, в которую мы попали (для селекта ищем и за знаком параграфа, для курсора только перед)
var SearchPosXY = this.Get_ParaContentPosByXY( X, Y, PageNum, false, true );
var SearchPosXY2 = this.Get_ParaContentPosByXY( X, Y, PageNum, false, false );
......@@ -7003,10 +7006,12 @@ Paragraph.prototype =
if ( true === StartSelection )
{
this.Set_SelectionContentPos( ContentPos, this.Get_ParaContentPos( true, false ), false );
this.Selection.StartManually = false;
}
else
{
{
this.Set_SelectionContentPos( this.Get_ParaContentPos( true, true ), ContentPos, false );
this.Selection.EndManually = false;
}
},
......@@ -7028,6 +7033,9 @@ Paragraph.prototype =
EndPos = this.Get_EndPos( true );
}
this.Selection.StartManually = false;
this.Selection.EndManually = false;
this.Set_SelectionContentPos( StartPos, EndPos );
},
......@@ -9827,7 +9835,7 @@ Paragraph.prototype =
// конца выделения, кроме этого в буквицу добавляем все табы идущие в начале.
var DropCapText = new CParagraphGetDropCapText();
if ( true == this.Selection.Use )
if ( true == this.Selection.Use && true === this.Parent.Selection_Is_OneElement() )
{
var SelSP = this.Get_ParaContentPos( true, true );
var SelEP = this.Get_ParaContentPos( true, false );
......@@ -13369,6 +13377,9 @@ function CParagraphSelection()
this.StartPos = 0;
this.EndPos = 0;
this.Flag = selectionflag_Common;
this.StartManually = true; // true - через Selection_SetStart, false - через Selection_SetBegEnd
this.EndManually = true; // true - через Selection_SetEnd, афдыу - через Selection_SetBegEnd
}
CParagraphSelection.prototype =
......
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