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

Исправлены баги с хождением по Ctrl в формулах, поправился баг с двойным кликом в формуле.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@59091 954022d7-b5bf-4e40-9824-e11837661b57
parent f271d214
......@@ -1586,10 +1586,14 @@ ParaHyperlink.prototype.Get_WordStartPos = function(SearchPos, ContentPos, Depth
var Count = this.Content.length;
while ( CurPos >= 0 )
{
var OldUpdatePos = SearchPos.UpdatePos;
this.Content[CurPos].Get_WordStartPos(SearchPos, ContentPos, Depth + 1, false);
if ( true === SearchPos.UpdatePos )
if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update( CurPos, Depth );
else
SearchPos.UpdatePos = OldUpdatePos;
if ( true === SearchPos.Found )
return;
......@@ -1615,10 +1619,14 @@ ParaHyperlink.prototype.Get_WordEndPos = function(SearchPos, ContentPos, Depth,
var Count = this.Content.length;
while ( CurPos < Count )
{
var OldUpdatePos = SearchPos.UpdatePos;
this.Content[CurPos].Get_WordEndPos(SearchPos, ContentPos, Depth + 1, false, StepEnd);
if ( true === SearchPos.UpdatePos )
if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update( CurPos, Depth );
else
SearchPos.UpdatePos = OldUpdatePos;
if ( true === SearchPos.Found )
return;
......
......@@ -4157,6 +4157,7 @@ CMathContent.prototype.Get_WordStartPos = function(SearchPos, ContentPos, Depth,
CurPos--;
var bStepStartRun = false;
if (true === UseContentPos && para_Math_Composition === this.content[CurPos + 1].Type)
{
// При выходе из формулы встаем в конец рана
......@@ -4166,17 +4167,37 @@ CMathContent.prototype.Get_WordStartPos = function(SearchPos, ContentPos, Depth,
SearchPos.UpdatePos = true;
return true;
}
else if (para_Math_Run === this.content[CurPos + 1].Type && true === SearchPos.Shift)
bStepStartRun = true;
while (CurPos >= 0)
{
this.content[CurPos].Get_WordStartPos(SearchPos, ContentPos, Depth + 1, false);
if (true !== bStepStartRun || para_Math_Run === this.content[CurPos].Type)
{
var OldUpdatePos = SearchPos.UpdatePos;
if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update( CurPos, Depth );
this.content[CurPos].Get_WordStartPos(SearchPos, ContentPos, Depth + 1, false);
if (true === SearchPos.Found)
return;
if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update(CurPos, Depth);
else
SearchPos.UpdatePos = OldUpdatePos;
if (true === SearchPos.Found)
return;
if (true === SearchPos.Shift)
bStepStartRun = true;
}
else
{
// Встаем в начало рана перед формулой
this.content[CurPos + 1].Get_StartPos(SearchPos.Pos, Depth + 1);
SearchPos.Pos.Update(CurPos + 1, Depth);
SearchPos.Found = true;
SearchPos.UpdatePos = true;
return true;
}
CurPos--;
}
......@@ -4219,6 +4240,7 @@ CMathContent.prototype.Get_WordEndPos = function(SearchPos, ContentPos, Depth, U
CurPos++;
var bStepEndRun = false;
if (true === UseContentPos && para_Math_Composition === this.content[CurPos - 1].Type)
{
// При выходе из формулы встаем в начало рана
......@@ -4228,16 +4250,37 @@ CMathContent.prototype.Get_WordEndPos = function(SearchPos, ContentPos, Depth, U
SearchPos.UpdatePos = true;
return true;
}
else if (para_Math_Run === this.content[CurPos - 1].Type && true === SearchPos.Shift)
bStepEndRun = true;
while (CurPos < Count)
{
this.content[CurPos].Get_WordEndPos(SearchPos, ContentPos, Depth + 1, false, StepEnd);
if (true !== bStepEndRun || para_Math_Run === this.content[CurPos].Type)
{
var OldUpdatePos = SearchPos.UpdatePos;
if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update(CurPos, Depth);
this.content[CurPos].Get_WordEndPos(SearchPos, ContentPos, Depth + 1, false, StepEnd);
if (true === SearchPos.Found)
return;
if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update(CurPos, Depth);
else
SearchPos.UpdatePos = OldUpdatePos;
if (true === SearchPos.Found)
return;
if (true === SearchPos.Shift)
bStepEndRun = true;
}
else
{
// Встаем в конец рана перед формулой
this.content[CurPos - 1].Get_EndPos(false, SearchPos.Pos, Depth + 1);
SearchPos.Pos.Update(CurPos - 1, Depth);
SearchPos.Found = true;
SearchPos.UpdatePos = true;
return true;
}
CurPos++;
}
......
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