Commit 8bed382f authored by Ilya.Kirillov's avatar Ilya.Kirillov Committed by Alexander.Trofimov

В новом варианте параграфе через класс CRun реализована работа с мышью....

В новом варианте параграфе через класс CRun реализована работа с мышью. Исправлен баг (в новой версии), с двойным нажатием левой кнопки мыши, когда должно было выделяться слово.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@53838 954022d7-b5bf-4e40-9824-e11837661b57
parent 662dbb05
...@@ -7895,11 +7895,18 @@ CDocument.prototype = ...@@ -7895,11 +7895,18 @@ CDocument.prototype =
Start = this.Selection.EndPos; Start = this.Selection.EndPos;
} }
// Чтобы не было эффекта, когда ничего не поселекчено, а при удалении соединяются параграфы if ( true !== Debug_ParaRunMode )
if ( Direction > 0 && type_Paragraph === this.Content[Start].GetType() && true === this.Content[Start].Selection_IsEmpty() && this.Content[Start].Selection.StartPos == this.Content[Start].Content.length - 1 )
{ {
this.Content[Start].Selection.StartPos = this.Content[Start].Internal_GetEndPos(); // Чтобы не было эффекта, когда ничего не поселекчено, а при удалении соединяются параграфы
this.Content[Start].Selection.EndPos = this.Content[Start].Content.length - 1; if ( Direction > 0 && type_Paragraph === this.Content[Start].GetType() && true === this.Content[Start].Selection_IsEmpty() && this.Content[Start].Selection.StartPos == this.Content[Start].Content.length - 1 )
{
this.Content[Start].Selection.StartPos = this.Content[Start].Internal_GetEndPos();
this.Content[Start].Selection.EndPos = this.Content[Start].Content.length - 1;
}
}
else
{
// TODO: Разрулить пустой селект
} }
for ( var Index = Start; Index <= End; Index++ ) for ( var Index = Start; Index <= End; Index++ )
...@@ -7914,10 +7921,17 @@ CDocument.prototype = ...@@ -7914,10 +7921,17 @@ CDocument.prototype =
if ( type_Paragraph === ItemType ) if ( type_Paragraph === ItemType )
{ {
if ( Direction > 0 ) if ( true !== Debug_ParaRunMode )
Item.Selection.EndPos = Item.Content.length - 1; {
if ( Direction > 0 )
Item.Selection.EndPos = Item.Content.length - 1;
else
Item.Selection.StartPos = Item.Content.length - 1;
}
else else
Item.Selection.StartPos = Item.Content.length - 1; {
Item.Selection_SetBegEnd( ( Direction > 0 ? false : true ), false );
}
} }
else //if ( type_Table === ItemType ) else //if ( type_Table === ItemType )
{ {
...@@ -7939,10 +7953,18 @@ CDocument.prototype = ...@@ -7939,10 +7953,18 @@ CDocument.prototype =
if ( type_Paragraph === ItemType ) if ( type_Paragraph === ItemType )
{ {
if ( Direction > 0 ) if ( true !== Debug_ParaRunMode )
Item.Selection.StartPos = Item.Internal_GetStartPos(); {
if ( Direction > 0 )
Item.Selection.StartPos = Item.Internal_GetStartPos();
else
Item.Selection.EndPos = Item.Internal_GetStartPos();
}
else else
Item.Selection.EndPos = Item.Internal_GetStartPos(); {
Item.Selection_SetBegEnd( ( Direction > 0 ? true : false ), true );
}
} }
else //if ( type_Table === ItemType ) else //if ( type_Table === ItemType )
{ {
...@@ -7962,15 +7984,22 @@ CDocument.prototype = ...@@ -7962,15 +7984,22 @@ CDocument.prototype =
if ( type_Paragraph === ItemType ) if ( type_Paragraph === ItemType )
{ {
if ( Direction > 0 ) if ( true !== Debug_ParaRunMode )
{ {
Item.Selection.Set_StartPos(Item.Internal_GetStartPos(), -1); if ( Direction > 0 )
Item.Selection.Set_EndPos(Item.Content.length - 1, -1); {
Item.Selection.Set_StartPos(Item.Internal_GetStartPos(), -1);
Item.Selection.Set_EndPos(Item.Content.length - 1, -1);
}
else
{
Item.Selection.Set_EndPos(Item.Internal_GetStartPos(), -1);
Item.Selection.Set_StartPos(Item.Content.length - 1, -1);
}
} }
else else
{ {
Item.Selection.Set_EndPos(Item.Internal_GetStartPos(), -1); Item.Select_All( Direction );
Item.Selection.Set_StartPos(Item.Content.length - 1, -1);
} }
} }
else //if ( type_Table === ItemType ) else //if ( type_Table === ItemType )
......
This diff is collapsed.
...@@ -2472,7 +2472,7 @@ ParaRun.prototype = ...@@ -2472,7 +2472,7 @@ ParaRun.prototype =
} }
}, },
Get_ParaContentPosByXY : function(SearchPos, Depth, _CurLine, _CurRange) Get_ParaContentPosByXY : function(SearchPos, Depth, _CurLine, _CurRange, StepEnd)
{ {
var Result = false; var Result = false;
...@@ -2488,8 +2488,6 @@ ParaRun.prototype = ...@@ -2488,8 +2488,6 @@ ParaRun.prototype =
var Item = this.Content[CurPos]; var Item = this.Content[CurPos];
var TempDx = 0; var TempDx = 0;
var bCheck = false;
// TODO: Сделать поддержку нумерации // TODO: Сделать поддержку нумерации
// if ( ItemNum === this.Numbering.Pos ) // if ( ItemNum === this.Numbering.Pos )
...@@ -2556,19 +2554,23 @@ ParaRun.prototype = ...@@ -2556,19 +2554,23 @@ ParaRun.prototype =
} }
} }
// TODO: Сделать разруливование со строками
// if ( true != bEnd && ItemNum === this.Lines[CurLine].EndPos && X > CurX + TempDx && para_NewLine != Item.Type )
// {
// ResultLine = CurLine;
// DiffPos = ItemNum + 1;
// }
SearchPos.CurX += TempDx; SearchPos.CurX += TempDx;
// Заглушка для знака параграфа // Заглушка для знака параграфа и конца строки
if ( para_End === Item.Type && Math.abs( SearchPos.X - SearchPos.CurX ) < SearchPos.DiffX ) if ( Math.abs( SearchPos.X - SearchPos.CurX ) < SearchPos.DiffX )
{ {
SearchPos.End = true; if ( para_End === Item.Type )
{
SearchPos.End = true;
// Если мы ищем позицию для селекта, тогда нужно искать и за знаком параграфа
if ( true === StepEnd )
SearchPos.Pos.Update( this.Content.length, Depth );
}
else if ( CurPos === EndPos - 1 && para_NewLine != Item.Type )
{
SearchPos.Pos.Update( EndPos, Depth );
}
} }
} }
...@@ -2939,14 +2941,12 @@ ParaRun.prototype = ...@@ -2939,14 +2941,12 @@ ParaRun.prototype =
Selection_Stop : function() Selection_Stop : function()
{ {
this.State.Selection.Start = false;
}, },
Selection_Remove : function() Selection_Remove : function()
{ {
var Selection = this.State.Selection; var Selection = this.State.Selection;
Selection.Start = false;
Selection.Use = false; Selection.Use = false;
Selection.StartPos = 0; Selection.StartPos = 0;
Selection.EndPos = 0; Selection.EndPos = 0;
...@@ -2956,7 +2956,6 @@ ParaRun.prototype = ...@@ -2956,7 +2956,6 @@ ParaRun.prototype =
{ {
var Selection = this.State.Selection; var Selection = this.State.Selection;
Selection.Start = false;
Selection.Use = true; Selection.Use = true;
if ( -1 === Direction ) if ( -1 === Direction )
...@@ -3630,7 +3629,6 @@ ParaRun.prototype = ...@@ -3630,7 +3629,6 @@ ParaRun.prototype =
function CParaRunSelection() function CParaRunSelection()
{ {
this.Start = false;
this.Use = false; this.Use = false;
this.StartPos = false; this.StartPos = false;
this.EndPos = false; this.EndPos = false;
......
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