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 ...@@ -1586,10 +1586,14 @@ ParaHyperlink.prototype.Get_WordStartPos = function(SearchPos, ContentPos, Depth
var Count = this.Content.length; var Count = this.Content.length;
while ( CurPos >= 0 ) while ( CurPos >= 0 )
{ {
var OldUpdatePos = SearchPos.UpdatePos;
this.Content[CurPos].Get_WordStartPos(SearchPos, ContentPos, Depth + 1, false); this.Content[CurPos].Get_WordStartPos(SearchPos, ContentPos, Depth + 1, false);
if ( true === SearchPos.UpdatePos ) if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update( CurPos, Depth ); SearchPos.Pos.Update( CurPos, Depth );
else
SearchPos.UpdatePos = OldUpdatePos;
if ( true === SearchPos.Found ) if ( true === SearchPos.Found )
return; return;
...@@ -1615,10 +1619,14 @@ ParaHyperlink.prototype.Get_WordEndPos = function(SearchPos, ContentPos, Depth, ...@@ -1615,10 +1619,14 @@ ParaHyperlink.prototype.Get_WordEndPos = function(SearchPos, ContentPos, Depth,
var Count = this.Content.length; var Count = this.Content.length;
while ( CurPos < Count ) while ( CurPos < Count )
{ {
var OldUpdatePos = SearchPos.UpdatePos;
this.Content[CurPos].Get_WordEndPos(SearchPos, ContentPos, Depth + 1, false, StepEnd); this.Content[CurPos].Get_WordEndPos(SearchPos, ContentPos, Depth + 1, false, StepEnd);
if ( true === SearchPos.UpdatePos ) if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update( CurPos, Depth ); SearchPos.Pos.Update( CurPos, Depth );
else
SearchPos.UpdatePos = OldUpdatePos;
if ( true === SearchPos.Found ) if ( true === SearchPos.Found )
return; return;
......
...@@ -4157,6 +4157,7 @@ CMathContent.prototype.Get_WordStartPos = function(SearchPos, ContentPos, Depth, ...@@ -4157,6 +4157,7 @@ CMathContent.prototype.Get_WordStartPos = function(SearchPos, ContentPos, Depth,
CurPos--; CurPos--;
var bStepStartRun = false;
if (true === UseContentPos && para_Math_Composition === this.content[CurPos + 1].Type) if (true === UseContentPos && para_Math_Composition === this.content[CurPos + 1].Type)
{ {
// При выходе из формулы встаем в конец рана // При выходе из формулы встаем в конец рана
...@@ -4166,17 +4167,37 @@ CMathContent.prototype.Get_WordStartPos = function(SearchPos, ContentPos, Depth, ...@@ -4166,17 +4167,37 @@ CMathContent.prototype.Get_WordStartPos = function(SearchPos, ContentPos, Depth,
SearchPos.UpdatePos = true; SearchPos.UpdatePos = true;
return true; return true;
} }
else if (para_Math_Run === this.content[CurPos + 1].Type && true === SearchPos.Shift)
bStepStartRun = true;
while (CurPos >= 0) while (CurPos >= 0)
{ {
if (true !== bStepStartRun || para_Math_Run === this.content[CurPos].Type)
{
var OldUpdatePos = SearchPos.UpdatePos;
this.content[CurPos].Get_WordStartPos(SearchPos, ContentPos, Depth + 1, false); this.content[CurPos].Get_WordStartPos(SearchPos, ContentPos, Depth + 1, false);
if (true === SearchPos.UpdatePos) if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update( CurPos, Depth ); SearchPos.Pos.Update(CurPos, Depth);
else
SearchPos.UpdatePos = OldUpdatePos;
if (true === SearchPos.Found) if (true === SearchPos.Found)
return; 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--; CurPos--;
} }
...@@ -4219,6 +4240,7 @@ CMathContent.prototype.Get_WordEndPos = function(SearchPos, ContentPos, Depth, U ...@@ -4219,6 +4240,7 @@ CMathContent.prototype.Get_WordEndPos = function(SearchPos, ContentPos, Depth, U
CurPos++; CurPos++;
var bStepEndRun = false;
if (true === UseContentPos && para_Math_Composition === this.content[CurPos - 1].Type) if (true === UseContentPos && para_Math_Composition === this.content[CurPos - 1].Type)
{ {
// При выходе из формулы встаем в начало рана // При выходе из формулы встаем в начало рана
...@@ -4228,17 +4250,38 @@ CMathContent.prototype.Get_WordEndPos = function(SearchPos, ContentPos, Depth, U ...@@ -4228,17 +4250,38 @@ CMathContent.prototype.Get_WordEndPos = function(SearchPos, ContentPos, Depth, U
SearchPos.UpdatePos = true; SearchPos.UpdatePos = true;
return true; return true;
} }
else if (para_Math_Run === this.content[CurPos - 1].Type && true === SearchPos.Shift)
bStepEndRun = true;
while (CurPos < Count) while (CurPos < Count)
{ {
if (true !== bStepEndRun || para_Math_Run === this.content[CurPos].Type)
{
var OldUpdatePos = SearchPos.UpdatePos;
this.content[CurPos].Get_WordEndPos(SearchPos, ContentPos, Depth + 1, false, StepEnd); this.content[CurPos].Get_WordEndPos(SearchPos, ContentPos, Depth + 1, false, StepEnd);
if (true === SearchPos.UpdatePos) if (true === SearchPos.UpdatePos)
SearchPos.Pos.Update(CurPos, Depth); SearchPos.Pos.Update(CurPos, Depth);
else
SearchPos.UpdatePos = OldUpdatePos;
if (true === SearchPos.Found) if (true === SearchPos.Found)
return; 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++; 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