Commit 3294337e 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@52521 954022d7-b5bf-4e40-9824-e11837661b57
parent e4b54bd3
......@@ -7338,13 +7338,13 @@ CDocument.prototype =
{
if ( Direction > 0 )
{
Item.Selection.StartPos = Item.Internal_GetStartPos();
Item.Selection.EndPos = Item.Content.length - 1;
Item.Selection.Set_StartPos(Item.Internal_GetStartPos(), -1);
Item.Selection.Set_EndPos(Item.Content.length - 1, -1);
}
else
{
Item.Selection.EndPos = Item.Internal_GetStartPos();
Item.Selection.StartPos = Item.Content.length - 1;
Item.Selection.Set_EndPos(Item.Internal_GetStartPos(), -1);
Item.Selection.Set_StartPos(Item.Content.length - 1, -1);
}
}
else //if ( type_Table === ItemType )
......
......@@ -8366,12 +8366,22 @@ Paragraph.prototype =
else
this.Selection.Set_EndPos(Pos, Temp.Pos2);
// Если мы заканчиваем на математическом элементе, тогда у него выставляем конец селекта
// Обработка математических элементов:
// 1. Проверяем конец селекта
// Если мы закончили на математическом элементе, тогда смотрим на начало селекта,
// если селект начался в другом элементе, тогда выставляем начало селекта в формуле
// в зависимости от направления, если селект начался в этом же параграфе, тогда проверяем,
// если начало селекта не тот же самый элемент, тогда выставляем начало
// 2. Проверяем начало селекта
// Если у нас селект начался в данном параграфе, и начальный элемент -формула, и начало селекта
// не совпадает с концом селекта, тогда выставляем конец селекта у данного элемента
var ParentSelectDirection = this.Parent.Selection_Is_OneElement();
if ( undefined !== this.Content[Temp.Pos2] && para_Math === this.Content[Temp.Pos2].Type )
{
// Если у нас совпали начальная и конечная позиции, тогда не нужно указывать начало селекта, т.к. оно
// было определено в Selection_SetStart, но это только в случае, когда выделение внутри 1 параграфа.
var ParentSelectDirection = this.Parent.Selection_Is_OneElement();
if ( 0 === ParentSelectDirection )
{
if ( this.Selection.EndPos2 != this.Selection.StartPos2 )
......@@ -8393,6 +8403,14 @@ Paragraph.prototype =
this.Content[Temp.Pos2].Selection_SetEnd(X, Y, PageNum, MouseEvent);
}
if ( undefined !== this.Content[this.Selection.StartPos2] && para_Math === this.Content[this.Selection.StartPos2].Type && 0 === ParentSelectDirection && this.Selection.EndPos2 != this.Selection.StartPos2 )
{
if ( this.Selection.StartPos2 < this.Selection.EndPos2 )
this.Content[this.Selection.StartPos2].Selection_Ending(false);
else
this.Content[this.Selection.StartPos2].Selection_Beginning(false);
}
if ( this.Selection.EndPos == this.Selection.StartPos && g_mouse_event_type_up === MouseEvent.Type && ( this.Selection.EndPos2 != this.Selection.StartPos2 || undefined === this.Content[this.Selection.StartPos2] || para_Math !== this.Content[this.Selection.StartPos2].Type ) )
{
var NumPr = this.Numbering_Get();
......@@ -8594,8 +8612,11 @@ Paragraph.prototype =
this.Content[this.Selection.StartPos2].Selection_Draw();
if ( this.Selection.StartPos2 === StartPos )
{
StartPos++;
else if( this.Selection.StartPos2 === EndPos )
StartX += this.Content[this.Selection.StartPos2].WidthVisible;
}
else if( this.Selection.StartPos2 === EndPos - 1 )
EndPos--;
}
......@@ -8605,8 +8626,11 @@ Paragraph.prototype =
this.Content[this.Selection.EndPos2].Selection_Draw();
if ( this.Selection.EndPos2 === StartPos )
{
StartPos++;
else if( this.Selection.EndPos2 === EndPos )
StartX += this.Content[this.Selection.EndPos2].WidthVisible;
}
else if( this.Selection.EndPos2 === EndPos - 1 )
EndPos--;
}
......
......@@ -7569,19 +7569,16 @@ ParaMath.prototype =
Selection_Beginning : function(bStart)
{
this.Math.Selection_Beginning(bStart);
console.log( "Selection Beginning(" + bStart +")" );
},
Selection_Ending : function(bStart)
{
this.Math.Selection_Ending(bStart);
console.log( "Selection Ending(" + bStart +")" );
},
Selection_Draw : function()
{
this.Math.Selection_Draw();
//console.log( "Selection draw" );
},
Selection_IsEmpty : function()
......
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