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

Исправлен баг с пересылкой измнений в совместном редактировании, при котором...

Исправлен баг с пересылкой измнений в совместном редактировании, при котором не в то время включался пересчет нумерации (баг 26454). Исправлен баг с drag-n-drop текста в неправильное место(баг 26443). Исправлен баг с неочисткой селекта в колонтитулах (баг 25673). Исправлен баг с неправильным пересчетом параграфов с обтеканием вокруг flow-объектов (баг 26465). Исправлен баг с зацикливанием поиска в автофигурах (баг 26437).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58231 954022d7-b5bf-4e40-9824-e11837661b57
parent f41821c5
......@@ -589,6 +589,7 @@ function CCollaborativeEditing()
this.m_aNeedLock = []; // Массив со списком залоченных объектов(которые были залочены, но еще не были добавлены на данном клиенте)
this.m_aLinkData = []; // Массив, указателей, которые нам надо выставить при загрузке чужих изменений
this.m_aEndActions = []; // Массив действий, которые надо выполнить после принятия чужих изменений
this.m_bGlobalLock = false; // Запрещаем производить любые "редактирующие" действия (т.е. то, что в историю запишется)
this.m_bGlobalLockSelection = false; // Запрещаем изменять селект и курсор
......@@ -1083,6 +1084,16 @@ function CCollaborativeEditing()
Class.FromBinary = true;
};
this.Clear_EndActions = function()
{
this.m_aEndActions.length = 0;
};
this.Add_EndActions = function(Class, Data)
{
this.m_aEndActions.push({Class : Class, Data : Data});
};
this.OnEnd_ReadForeignChanges = function()
{
var Count = this.m_aNewObjects.length;
......@@ -1093,6 +1104,14 @@ function CCollaborativeEditing()
Class.FromBinary = false;
}
Count = this.m_aEndActions.length;
for (var Index = 0; Index < Count; Index++)
{
var Item = this.m_aEndActions[Index];
Item.Class.Process_EndLoad(Item.Data);
}
this.Clear_EndActions();
this.Clear_NewObjects();
};
//-----------------------------------------------------------------------------------
......
......@@ -8752,9 +8752,7 @@ CDocument.prototype =
if ( 1 === ElementsCount && type_Paragraph === FirstElement.Element.GetType() && ( true === FirstElement.Element.Is_Empty() || true == FirstElement.SelectedAll ) )
{
bConcatS = false;
if ( true === FirstElement.Element.Is_Empty() )
DstIndex++;
DstIndex++;
}
}
else if ( true === Para.Cursor_IsStart() )
......@@ -10674,6 +10672,9 @@ CDocument.prototype =
// Если нам надо повторять колонтитул, а он уже изначально повторяющийся, тогда не делаем ничего
if ( null === _CurHdrFtr )
return;
// Очистим селект
_CurHdrFtr.Selection_Remove();
// Просто удаляем запись о данном колонтитуле в секции
SectPr.Set_HdrFtr( bHeader, bFirst, bEven, null );
......
......@@ -1640,7 +1640,7 @@ CAbstractNum.prototype =
}
// Сразу нельзя запускать пересчет, т.к. возможно еще не все ссылки проставлены
CollaborativeEditing.Add_LinkData(this, {iLvl : iLvl});
CollaborativeEditing.Add_EndActions(this, {iLvl : iLvl});
},
Write_ToBinary2 : function(Writer)
......@@ -1672,7 +1672,11 @@ CAbstractNum.prototype =
Load_LinkData : function(LinkData)
{
var iLvl = LinkData.iLvl;
},
Process_EndLoad : function(Data)
{
var iLvl = Data.iLvl;
if (undefined !== iLvl)
{
// Пересчитываем стили у все параграфов с данной нумерацией
......
......@@ -68,14 +68,16 @@ CParagraphContentWithContentBase.prototype.protected_GetRangesCount = function(L
// с номерами больше, чем RangeIndex. Возвращается позиция предпоследнего отрезка, либо 0.
CParagraphContentWithContentBase.prototype.protected_AddRange = function(LineIndex, RangeIndex)
{
// Удаляем лишние записи о строках
if (this.Lines[0] > LineIndex + 1)
// Удаляем лишние записи о строках и отрезках
if (this.Lines[0] >= LineIndex + 1)
{
var RangeOffset = this.protected_GetRangeOffset(LineIndex, 0);
var RangeOffset = this.protected_GetRangeOffset(LineIndex, 0) + RangeIndex * 2;
this.Lines.splice(RangeOffset, this.Lines.length - RangeOffset);
this.Lines.splice(LineIndex + 1, this.Lines[0] - LineIndex);
if (this.Lines[0] !== LineIndex + 1)
this.Lines.splice(LineIndex + 1, this.Lines[0] - LineIndex);
}
if (0 === RangeIndex)
{
if (this.Lines[0] !== LineIndex + 1)
......
......@@ -278,8 +278,8 @@ CDocument.prototype.Search_GetId = function(bNext)
if ( null != Id )
return Id;
ParaDrawing.GoTo_Text( true === bNext ? false : true, false );
this.DrawingObjects.resetSelection();
ParaDrawing.GoTo_Text( true === bNext ? false : true, false );
}
if ( docpostype_Content === this.CurPos.Type )
......
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