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) ...@@ -70,7 +70,8 @@ function Paragraph(DrawingDocument, Parent, PageNum, X, Y, XLimit, YLimit)
{ {
X : 0, X : 0,
Y : 0, Y : 0,
ContentPos : 0, ContentPos : 0, // Ближайшая позиция в контенте (между элементами)
ContentPos2 : -1, // Реальный элемент
Line : -1, Line : -1,
RealX : 0, // позиция курсора, без учета расположения букв RealX : 0, // позиция курсора, без учета расположения букв
RealY : 0, // это актуально для клавиш вверх и вниз RealY : 0, // это актуально для клавиш вверх и вниз
...@@ -3863,6 +3864,10 @@ Paragraph.prototype = ...@@ -3863,6 +3864,10 @@ Paragraph.prototype =
RecalculateCurPos : function() 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 ); this.Internal_Recalculate_CurPos( this.CurPos.ContentPos, true, true, false );
}, },
...@@ -8411,6 +8416,19 @@ Paragraph.prototype = ...@@ -8411,6 +8416,19 @@ Paragraph.prototype =
this.Content[this.Selection.StartPos2].Selection_Beginning(false); 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 ) ) 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(); var NumPr = this.Numbering_Get();
...@@ -8524,6 +8542,15 @@ Paragraph.prototype = ...@@ -8524,6 +8542,15 @@ Paragraph.prototype =
Selection_Remove : function() 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.Use = false;
this.Selection.Flag = selectionflag_Common; this.Selection.Flag = selectionflag_Common;
this.Selection_Clear(); this.Selection_Clear();
......
...@@ -7556,6 +7556,11 @@ ParaMath.prototype = ...@@ -7556,6 +7556,11 @@ ParaMath.prototype =
return true; return true;
}, },
RecalculateCurPos : function()
{
},
Selection_SetStart : function(X, Y, PageNum) Selection_SetStart : function(X, Y, PageNum)
{ {
this.Math.Selection_SetStart( X, Y, PageNum ); this.Math.Selection_SetStart( X, Y, PageNum );
...@@ -7586,6 +7591,11 @@ ParaMath.prototype = ...@@ -7586,6 +7591,11 @@ ParaMath.prototype =
return false; return false;
}, },
Selection_Remove : function()
{
},
Copy : function() Copy : function()
{ {
var Math = new ParaMath(); 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