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