Commit 347ce04f 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@52547 954022d7-b5bf-4e40-9824-e11837661b57
parent 147a1c0b
......@@ -70,7 +70,8 @@ function Paragraph(DrawingDocument, Parent, PageNum, X, Y, XLimit, YLimit)
{
X : 0,
Y : 0,
ContentPos : 0,
ContentPos : 0, // Ближайшая позиция в контенте (между элементами)
ContentPos2 : -1, // Реальный элемент
Line : -1,
RealX : 0, // позиция курсора, без учета расположения букв
RealY : 0, // это актуально для клавиш вверх и вниз
......@@ -3863,6 +3864,10 @@ Paragraph.prototype =
RecalculateCurPos : function()
{
var Pos = this.CurPos.ContentPos2;
if ( undefined !== this.Content[Pos] && para_Math === this.Content[Pos].Type )
return this.Content[Pos].RecalculateCurPos();
this.Internal_Recalculate_CurPos( this.CurPos.ContentPos, true, true, false );
},
......@@ -8411,6 +8416,19 @@ Paragraph.prototype =
this.Content[this.Selection.StartPos2].Selection_Beginning(false);
}
// Если мы закончили в математическом элементе и в нем нет селекта, тогда отменяем селект совсем и ставим курсор в формуле
if ( this.Selection.EndPos2 === this.Selection.StartPos2 && undefined !== this.Content[this.Selection.StartPos2] && para_Math === this.Content[this.Selection.StartPos2].Type && true === this.Content[this.Selection.StartPos2].Selection_IsEmpty() )
{
this.Selection_Remove();
this.CurPos.ContentPos2 = this.Selection.EndPos2;
this.Set_ContentPos( Pos, true, Temp.Line );
this.RecalculateCurPos();
}
else
this.CurPos.ContentPos2 = -1;
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();
......@@ -8524,6 +8542,15 @@ Paragraph.prototype =
Selection_Remove : function()
{
var StartPos = this.Selection.StartPos2;
var EndPos = this.Selection.EndPos2;
if ( undefined !== this.Content[StartPos] && para_Math === this.Content[StartPos].Type )
this.Content[StartPos].Selection_Remove();
if ( undefined !== this.Content[EndPos] && para_Math === this.Content[EndPos].Type && StartPos != EndPos )
this.Content[EndPos].Selection_Remove();
this.Selection.Use = false;
this.Selection.Flag = selectionflag_Common;
this.Selection_Clear();
......
......@@ -7556,6 +7556,11 @@ ParaMath.prototype =
return true;
},
RecalculateCurPos : function()
{
},
Selection_SetStart : function(X, Y, PageNum)
{
this.Math.Selection_SetStart( X, Y, PageNum );
......@@ -7586,6 +7591,11 @@ ParaMath.prototype =
return false;
},
Selection_Remove : function()
{
},
Copy : function()
{
var Math = new ParaMath();
......
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