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

Исправлен баг с рассчетом параграфа состоящего из одного PageBreak, исправлен...

Исправлен баг с рассчетом параграфа состоящего из одного PageBreak, исправлен баг с рассчетом ширины текста с настройкой SmallCaps (баг 26776).

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@59847 954022d7-b5bf-4e40-9824-e11837661b57
parent 6c9183da
......@@ -206,6 +206,12 @@ ParaText.prototype =
else if ( this.Flags & PARATEXT_FLAGS_FONTKOEF_SMALLCAPS )
FontKoef = smallcaps_Koef;
// Разрешенные размеры шрифта только либо целое, либо целое/2. Даже после применения FontKoef, поэтому
// мы должны подкрутить коэффициент так, чтобы после домножения на него, у на получался разрешенный размер.
var FontSize = TextPr.FontSize;
if (1 !== FontKoef)
FontKoef = (((FontSize * FontKoef * 2 + 0.5) | 0) / 2) / FontSize;
Context.SetFontSlot(FontSlot, FontKoef);
var Temp = Context.MeasureCode(ResultCharCode);
......@@ -347,7 +353,14 @@ ParaSpace.prototype =
this.Set_FontKoef_Script( TextPr.VertAlign !== vertalign_Baseline ? true : false );
this.Set_FontKoef_SmallCaps( true != TextPr.Caps && true === TextPr.SmallCaps ? true : false );
Context.SetFontSlot( fontslot_ASCII, this.Get_FontKoef() );
// Разрешенные размеры шрифта только либо целое, либо целое/2. Даже после применения FontKoef, поэтому
// мы должны подкрутить коэффициент так, чтобы после домножения на него, у на получался разрешенный размер.
var FontKoef = this.Get_FontKoef();
var FontSize = TextPr.FontSize;
if (1 !== FontKoef)
FontKoef = (((FontSize * FontKoef * 2 + 0.5) | 0) / 2) / FontSize;
Context.SetFontSlot(fontslot_ASCII, FontKoef);
var Temp = Context.MeasureCode(0x20);
......
......@@ -1109,8 +1109,9 @@ Paragraph.prototype.private_RecalculateLineBottomBound = function(CurLine, CurPa
var Top = PRS.LineTop;
var Bottom2 = PRS.LineBottom2;
// Переносим строку по PageBreak. Если в строке ничего нет, кроме PageBreak, тогда нам не надо проверять высоту строки и обтекание.
var BreakPageLineEmpty = (this.Lines[CurLine].Info & paralineinfo_BreakPage && this.Lines[CurLine].Info & paralineinfo_Empty ? true : false);
// Переносим строку по PageBreak. Если в строке ничего нет кроме PageBreak, и это не конец параграфа, тогда нам не надо проверять высоту строки и обтекание.
var LineInfo = this.Lines[CurLine].Info;
var BreakPageLineEmpty = (LineInfo & paralineinfo_BreakPage && LineInfo & paralineinfo_Empty && !(LineInfo & paralineinfo_End) ? true : false);
PRS.BreakPageLineEmpty = BreakPageLineEmpty;
// Сначала проверяем не нужно ли сделать перенос страницы в данном месте
......
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