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

Исправлен баг, что гиперссылку, состоящую из 1 символа невозможно...

Исправлен баг, что гиперссылку, состоящую из 1 символа невозможно отредактировать и удалить черех контекстное меню (баг 19719).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@49644 954022d7-b5bf-4e40-9824-e11837661b57
parent 15eb962d
...@@ -7576,9 +7576,12 @@ Paragraph.prototype = ...@@ -7576,9 +7576,12 @@ Paragraph.prototype =
return null; return null;
}, },
Check_Hyperlink2 : function(Pos, bCheckEnd) Check_Hyperlink2 : function(Pos, bCheckEnd, bNoSelectCheck)
{ {
if ( "undefined" === typeof(bCheckEnd) ) if ( undefined === bNoSelectCheck )
bNoSelectCheck = false;
if ( undefined === bCheckEnd )
bCheckEnd = true; bCheckEnd = true;
// TODO : Специальная заглушка, для конца селекта. Неплохо бы переделать. // TODO : Специальная заглушка, для конца селекта. Неплохо бы переделать.
...@@ -7593,6 +7596,12 @@ Paragraph.prototype = ...@@ -7593,6 +7596,12 @@ Paragraph.prototype =
} }
} }
// TODO: специальная заглушка, для случая, когда курсор стоит перед гиперссылкой, чтобы мы определяли данную ситуацию как попадание в гиперссылку
if ( true === bNoSelectCheck )
{
Pos = this.Internal_Correct_HyperlinkPos(Pos);
}
var Find = this.Internal_FindBackward( Pos - 1, [para_HyperlinkStart, para_HyperlinkEnd] ); var Find = this.Internal_FindBackward( Pos - 1, [para_HyperlinkStart, para_HyperlinkEnd] );
if ( true === Find.Found && para_HyperlinkStart === Find.Type ) if ( true === Find.Found && para_HyperlinkStart === Find.Type )
return this.Content[Find.LetterPos]; return this.Content[Find.LetterPos];
...@@ -7600,6 +7609,22 @@ Paragraph.prototype = ...@@ -7600,6 +7609,22 @@ Paragraph.prototype =
return null; return null;
}, },
Internal_Correct_HyperlinkPos : function(_Pos)
{
var Pos = _Pos;
var Count = this.Content.length;
while ( Pos < Count )
{
var TempType = this.Content[Pos].Type;
if ( para_HyperlinkStart === TempType || para_TextPr === TempType || para_CollaborativeChangesEnd === TempType || para_CollaborativeChangesStart === TempType )
Pos++;
else
break;
}
return Pos;
},
Hyperlink_Add : function(HyperProps) Hyperlink_Add : function(HyperProps)
{ {
var Hyperlink = new ParaHyperlinkStart(); var Hyperlink = new ParaHyperlinkStart();
...@@ -7657,8 +7682,8 @@ Paragraph.prototype = ...@@ -7657,8 +7682,8 @@ Paragraph.prototype =
} }
else else
{ {
Hyperlink = this.Check_Hyperlink2( this.CurPos.ContentPos ); Hyperlink = this.Check_Hyperlink2( this.CurPos.ContentPos, false, true );
Pos = this.CurPos.ContentPos; Pos = this.Internal_Correct_HyperlinkPos(this.CurPos.ContentPos);
} }
if ( null != Hyperlink ) if ( null != Hyperlink )
...@@ -7731,9 +7756,9 @@ Paragraph.prototype = ...@@ -7731,9 +7756,9 @@ Paragraph.prototype =
} }
else else
{ {
var Hyper_cur = this.Check_Hyperlink2( this.CurPos.ContentPos ); var Hyper_cur = this.Check_Hyperlink2( this.CurPos.ContentPos, false, true );
if ( null != Hyper_cur ) if ( null != Hyper_cur )
Pos = this.CurPos.ContentPos; Pos = this.Internal_Correct_HyperlinkPos( this.CurPos.ContentPos );
} }
if ( -1 != Pos ) if ( -1 != Pos )
...@@ -10412,7 +10437,7 @@ Paragraph.prototype = ...@@ -10412,7 +10437,7 @@ Paragraph.prototype =
} }
else else
{ {
var Hyper_cur = this.Check_Hyperlink2( this.CurPos.ContentPos, false ); var Hyper_cur = this.Check_Hyperlink2( this.CurPos.ContentPos, false, true );
if ( null != Hyper_cur ) if ( null != Hyper_cur )
{ {
// Вычислим строку // Вычислим строку
......
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