Commit 79478d52 authored by Anna.Pavlova's avatar Anna.Pavlova Committed by Alexander.Trofimov

1. Исправила баг: при переносе на новую строку формулы не проставлялись CurLine, CurRange для Run

2. При смене текстовых настроек для формул непраильно выставлялись метки селекта, если в конце или в начале селекта стоял мат объект (этот баг появлялся, когда селект выходил за границы формулы)
3. Поправила Selection_DrawRange : неправильно отсылались параметры CurLine b CurRange для ParaRun 

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@57271 954022d7-b5bf-4e40-9824-e11837661b57
parent 27c947b8
......@@ -495,8 +495,6 @@ ParaMath.prototype =
this.StartLine = StartLine;
this.StartRange = StartRange;
this.LinesLength = 0;
this.Root.Recalculate_Reset(StartRange, StartLine);
},
Recalculate_Range : function(PRS, ParaPr, Depth)
......@@ -632,6 +630,11 @@ ParaMath.prototype =
}
}
if(PRS.NewRange == false)
this.Root.Recalculate_Reset(PRS.Range, PRS.Line);
var RangeStartPos = 0;
var RangeEndPos = 0;
......@@ -953,15 +956,6 @@ ParaMath.prototype =
ApplyArgSize : function(oWPrp, argSize)
{
var tPrp = new CTextPr();
/*var defaultWPrp =
{
FontFamily: {Name : "Cambria Math", Index : -1 },
FontSize: 11,
Italic: true,
Bold: false,
RFonts: {},
Lang: {}
};*/
tPrp.Merge(this.DefaultTextPr);
tPrp.Merge(oWPrp);
......@@ -1525,16 +1519,16 @@ ParaMath.prototype =
if(Start == End)
{
oCont.content[Start].Selection_DrawRange(0, 0, SelectionDraw);
oCont.content[Start].Selection_DrawRange(_CurLine, _CurRange, SelectionDraw);
}
else
{
oCont.content[Start].Selection_DrawRange(0, 0, SelectionDraw);
oCont.content[Start].Selection_DrawRange(_CurLine, _CurRange, SelectionDraw);
SelectionDraw.FindStart = false; // выставляем здесь флаг, для того чтобы правильно отрисовался селект для случая пустой ран мат. объект пустой ран
SelectionDraw.W += oCont.WidthToElement[End] - oCont.WidthToElement[Start + 1]; // startPos < endPos !
oCont.content[End].Selection_DrawRange(0,0, SelectionDraw);
oCont.content[End].Selection_DrawRange(_CurLine, _CurRange, SelectionDraw);
}
if(!oCont.bRoot)
......
......@@ -4802,6 +4802,7 @@ CMathContent.prototype =
}
else
{
if(StartPos > EndPos)
{
var temp = StartPos;
......@@ -4809,10 +4810,17 @@ CMathContent.prototype =
EndPos = temp;
}
//var lng = this.content.length - 1;
for(var i = StartPos + 1; i < EndPos; i++)
this.content[i].Apply_TextPr(TextPr, IncFontSize, true );
var bDirect = this.Selection.Start < this.Selection.End;
if(this.content[EndPos].Type == para_Math_Run)
{
NewRuns = this.content[EndPos].Apply_TextPr(TextPr, IncFontSize, false);
......@@ -4824,6 +4832,9 @@ CMathContent.prototype =
if(RRun !== null)
{
this.Internal_Content_Add(EndPos+1, RRun);
//if(bDirect && true === this.content[this.Selection.Start].Selection_IsEmpty(true))
}
}
......@@ -4850,17 +4861,32 @@ CMathContent.prototype =
this.content[StartPos].Apply_TextPr(TextPr, IncFontSize, true);
if ( this.Selection.Start < this.Selection.End && true === this.content[this.Selection.Start].Selection_IsEmpty(true) )
var bStartComposition = this.content[StartPos].Type == para_Math_Composition || (this.content[StartPos].Is_Empty() && this.content[StartPos + 1].Type == para_Math_Composition);
var bEndCompostion = this.content[EndPos].Type == para_Math_Composition || (this.content[EndPos].Is_Empty() && this.content[EndPos - 1].Type == para_Math_Composition);
if(!bStartComposition)
{
if(this.Selection.Start < this.Selection.End && true === this.content[this.Selection.Start].Selection_IsEmpty(true) )
this.Selection.Start++;
else if ( this.Selection.End < this.Selection.Start && true === this.content[this.Selection.End].Selection_IsEmpty(true) )
else if (this.Selection.End < this.Selection.Start && true === this.content[this.Selection.End].Selection_IsEmpty(true) )
this.Selection.End++;
}
if ( this.Selection.Start < this.Selection.End && true === this.content[this.Selection.End].Selection_IsEmpty(true) )
if(!bEndCompostion)
{
if(this.Selection.Start < this.Selection.End && true === this.content[this.Selection.End].Selection_IsEmpty(true) )
this.Selection.End--;
else if ( this.Selection.End < this.Selection.Start && true === this.content[this.Selection.Start].Selection_IsEmpty(true) )
else if (this.Selection.End < this.Selection.Start && true === this.content[this.Selection.Start].Selection_IsEmpty(true) )
this.Selection.Start--;
}
}
}
if(this.bRoot)
console.log("ApplyToAll " + ApplyToAll + " Start " + this.Selection.Start + " End " + this.Selection.End);
},
Internal_Content_Add : function(Pos, Item)
{
......
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