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

Исправлен баг с пересчетом после принятия изменений во время совсместного...

Исправлен баг с пересчетом после принятия изменений во время совсместного редактирования(баг 20425). Исправлен баг с зацикливанием пересчета из-за одновременного присутствия плаваюших объектов и висячей строки (баг 19793).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@49794 954022d7-b5bf-4e40-9824-e11837661b57
parent dab57019
......@@ -719,6 +719,7 @@ function CCollaborativeEditing()
if ( null != HdrFtr_Content.Footer.Odd )
RecalculateData.HdrFtr.push( HdrFtr_Content.Footer.Odd );
LogicDocument.Reset_RecalculateCache();
LogicDocument.Recalculate( false, false, RecalculateData );
LogicDocument.Document_UpdateSelectionState();
LogicDocument.Document_UpdateInterfaceState();
......
This diff is collapsed.
......@@ -30,12 +30,7 @@ function CDocumentContent(Parent, DrawingDocument, X, Y, XLimit, YLimit, Split,
this.Pages = new Array();
this.RecalcInfo =
{
FlowObject : null, // Текущий float-объект, который мы пересчитываем
FlowObjectPageBreakBefore : false, // Нужно ли перед float-объектом поставить pagebreak
FlowObjectPage : 0
};
this.RecalcInfo = new CDocumentRecalcInfo();
this.Split = Split; // Разделяем ли на страницы
......@@ -460,6 +455,15 @@ CDocumentContent.prototype =
},
Reset_RecalculateCache : function()
{
var Count = this.Content.length;
for ( var Index = 0; Index < Count; Index++ )
{
this.Content[Index].Reset_RecalculateCache();
}
},
Recalculate_ : function(bForceRecalc, LastChangeIndex)
{
if ( true === this.TurnOffRecalc || true === editor.WordControl.m_oLogicDocument.TurnOffRecalc )
......
......@@ -180,6 +180,11 @@ CHeaderFooter.prototype =
return bChanges;
},
Reset_RecalculateCache : function()
{
this.Content.Reset_RecalculateCache();
},
Internal_RecalculateBounds : function()
{
// Если это верхний колонтитул и его нижняя граница выше верхнего поля, тогда
......@@ -1836,6 +1841,39 @@ CHeaderFooterController.prototype =
}
},
Reset_RecalculateCache : function()
{
if ( null != this.Content[0].Header.First )
{
this.Content[0].Header.First.Reset_RecalculateCache();
}
if ( null != this.Content[0].Header.Odd && this.Content[0].Header.Odd !== this.Content[0].Header.First )
{
this.Content[0].Header.Odd.Reset_RecalculateCache();
}
if ( null != this.Content[0].Header.Even && this.Content[0].Header.Even !== this.Content[0].Header.Odd && this.Content[0].Header.Even != this.Content[0].Header.First )
{
this.Content[0].Header.Even.Reset_RecalculateCache();
}
if ( null != this.Content[0].Footer.First )
{
this.Content[0].Footer.First.Reset_RecalculateCache();
}
if ( null != this.Content[0].Footer.Odd && this.Content[0].Footer.Odd !== this.Content[0].Footer.First )
{
this.Content[0].Footer.Odd.Reset_RecalculateCache();
}
if ( null != this.Content[0].Footer.Even && this.Content[0].Footer.Even !== this.Content[0].Footer.Odd && this.Content[0].Footer.Even != this.Content[0].Footer.First )
{
this.Content[0].Footer.Even.Reset_RecalculateCache();
}
},
// Отрисовка колонтитулов на данной странице
Draw : function(nPageIndex, pGraphics)
{
......
This diff is collapsed.
......@@ -456,11 +456,11 @@ CTableRecalcInfo.prototype =
this.CellsAll = true;
},
Reset : function()
Reset : function(bCellsAll)
{
this.TableGrid = false;
this.TableBorders = false;
this.CellsAll = false;
this.CellsAll = bCellsAll;
this.CellsToRecalc = new Object();
}
};
......@@ -2919,6 +2919,11 @@ CTable.prototype =
}
},
Reset_RecalculateCache : function()
{
this.RecalcInfo.Reset(true);
},
Recalculate_Page : function(_PageIndex)
{
var PageIndex = _PageIndex - this.PageNum;
......@@ -2940,7 +2945,7 @@ CTable.prototype =
this.Internal_Recalculate_Position_2(PageIndex);
if ( recalcresult_NextElement === Result )
this.RecalcInfo.Reset();
this.RecalcInfo.Reset(false);
return Result;
},
......
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