Commit 9490a8c0 authored by Ilya.Kirillov's avatar Ilya.Kirillov

Исправлены баги при быстром пересчете, если пересчитывался пустой параграфа с...

Исправлены баги при быстром пересчете, если пересчитывался пустой параграфа с секцией.  Исправлен рассчет ширины невидимого символа с разрывом секции.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@67940 954022d7-b5bf-4e40-9824-e11837661b57
parent d0c4337f
......@@ -1491,7 +1491,7 @@ CDocument.prototype =
// Если за данным параграфом следовал пустой параграф с новой секцией, тогда его тоже надо пересчитать.
var NextElement = Para.Get_DocumentNext();
if (null !== NextElement && true === this.Pages[PageIndex].Check_EndSectionPara(NextElement))
this.private_RecalculateEmptySectionParagraph(NextElement, Para, PageIndex, Para.Get_StartColumn(), Para.Get_ColumnsCount());
this.private_RecalculateEmptySectionParagraph(NextElement, Para, PageIndex, Para.Get_AbsoluteColumn(Para.Get_PagesCount() - 1), Para.Get_ColumnsCount());
// Перерисуем страницу, на которой произошли изменения
this.DrawingDocument.OnRecalculatePage(PageIndex, this.Pages[PageIndex]);
......@@ -1517,7 +1517,7 @@ CDocument.prototype =
var NextElement = SimplePara.Get_DocumentNext();
var LastFastPage = FastPages[FastPagesCount - 1];
if (null !== NextElement && true === this.Pages[LastFastPage].Check_EndSectionPara(NextElement))
this.private_RecalculateEmptySectionParagraph(NextElement, SimplePara, LastFastPage, SimplePara.Get_StartColumn(), SimplePara.Get_ColumnsCount());
this.private_RecalculateEmptySectionParagraph(NextElement, SimplePara, LastFastPage, SimplePara.Get_AbsoluteColumn(SimplePara.Get_PagesCount() - 1), SimplePara.Get_ColumnsCount());
for (var Index = 0; Index < FastPagesCount; Index++)
{
......
......@@ -12857,7 +12857,7 @@ Paragraph.prototype =
var X = this.Lines[CurLine].Ranges[CurRange].XVisible;
var W = RangeW.W;
var B = this.Lines[CurLine].Y - this.Lines[CurLine].Top;
var XLimit = this.XLimit - this.Get_CompiledPr2(false).ParaPr.Ind.Right
var XLimit = this.Pages[CurPage].XLimit - this.Get_CompiledPr2(false).ParaPr.Ind.Right
return { X : X, Y : Y, W : W, H : H, BaseLine : B, XLimit : XLimit };
}
......
......@@ -327,6 +327,8 @@ Paragraph.prototype.Recalculate_Page = function(PageIndex)
var CurPage = PageIndex;
var RecalcResult = this.private_RecalculatePage( CurPage );
this.private_CheckColumnBreak(CurPage);
this.Parent.RecalcInfo.Reset_WidowControl();
return RecalcResult;
......@@ -776,7 +778,6 @@ Paragraph.prototype.private_RecalculatePageBreak = function(CurLine, CurPa
this.Lines[-1] = new CParaLine();
PRS.RecalcResult = recalcresult_NextPage | recalcresultflags_Column;
this.Parent.OnColumnBreak_WhileRecalculate();
return false;
}
}
......@@ -1939,6 +1940,23 @@ Paragraph.prototype.private_CheckSkipKeepLinesAndWidowControl = function(CurPage
return bSkipWidowAndKeepLines;
};
Paragraph.prototype.private_CheckColumnBreak = function(CurPage)
{
if (this.Is_EmptyPage(CurPage))
return;
var Page = this.Pages[CurPage];
var Line = this.Lines[Page.EndLine];
if (!Line)
return;
if (Line.Info & paralineinfo_BreakPage && !(Line.Info & paralineinfo_BreakRealPage))
{
this.Parent.OnColumnBreak_WhileRecalculate();
}
};
var ERecalcPageType =
{
START : 0x00, // начать заново пересчет, с начала страницы
......
......@@ -160,7 +160,6 @@ CTable.prototype.private_RecalculateCheckPageColumnBreak = function(CurPage)
|| (true === isColumnBreakOnPrevLine && 0 === CurPage))
{
this.private_RecalculateSkipPage(CurPage);
this.Parent.OnColumnBreak_WhileRecalculate();
return false;
}
......
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