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 = ...@@ -495,8 +495,6 @@ ParaMath.prototype =
this.StartLine = StartLine; this.StartLine = StartLine;
this.StartRange = StartRange; this.StartRange = StartRange;
this.LinesLength = 0; this.LinesLength = 0;
this.Root.Recalculate_Reset(StartRange, StartLine);
}, },
Recalculate_Range : function(PRS, ParaPr, Depth) Recalculate_Range : function(PRS, ParaPr, Depth)
...@@ -632,6 +630,11 @@ ParaMath.prototype = ...@@ -632,6 +630,11 @@ ParaMath.prototype =
} }
} }
if(PRS.NewRange == false)
this.Root.Recalculate_Reset(PRS.Range, PRS.Line);
var RangeStartPos = 0; var RangeStartPos = 0;
var RangeEndPos = 0; var RangeEndPos = 0;
...@@ -953,15 +956,6 @@ ParaMath.prototype = ...@@ -953,15 +956,6 @@ ParaMath.prototype =
ApplyArgSize : function(oWPrp, argSize) ApplyArgSize : function(oWPrp, argSize)
{ {
var tPrp = new CTextPr(); 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(this.DefaultTextPr);
tPrp.Merge(oWPrp); tPrp.Merge(oWPrp);
...@@ -1525,16 +1519,16 @@ ParaMath.prototype = ...@@ -1525,16 +1519,16 @@ ParaMath.prototype =
if(Start == End) if(Start == End)
{ {
oCont.content[Start].Selection_DrawRange(0, 0, SelectionDraw); oCont.content[Start].Selection_DrawRange(_CurLine, _CurRange, SelectionDraw);
} }
else else
{ {
oCont.content[Start].Selection_DrawRange(0, 0, SelectionDraw); oCont.content[Start].Selection_DrawRange(_CurLine, _CurRange, SelectionDraw);
SelectionDraw.FindStart = false; // выставляем здесь флаг, для того чтобы правильно отрисовался селект для случая пустой ран мат. объект пустой ран SelectionDraw.FindStart = false; // выставляем здесь флаг, для того чтобы правильно отрисовался селект для случая пустой ран мат. объект пустой ран
SelectionDraw.W += oCont.WidthToElement[End] - oCont.WidthToElement[Start + 1]; // startPos < endPos ! 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) if(!oCont.bRoot)
......
...@@ -4802,6 +4802,7 @@ CMathContent.prototype = ...@@ -4802,6 +4802,7 @@ CMathContent.prototype =
} }
else else
{ {
if(StartPos > EndPos) if(StartPos > EndPos)
{ {
var temp = StartPos; var temp = StartPos;
...@@ -4809,10 +4810,17 @@ CMathContent.prototype = ...@@ -4809,10 +4810,17 @@ CMathContent.prototype =
EndPos = temp; EndPos = temp;
} }
//var lng = this.content.length - 1;
for(var i = StartPos + 1; i < EndPos; i++) for(var i = StartPos + 1; i < EndPos; i++)
this.content[i].Apply_TextPr(TextPr, IncFontSize, true ); this.content[i].Apply_TextPr(TextPr, IncFontSize, true );
var bDirect = this.Selection.Start < this.Selection.End;
if(this.content[EndPos].Type == para_Math_Run) if(this.content[EndPos].Type == para_Math_Run)
{ {
NewRuns = this.content[EndPos].Apply_TextPr(TextPr, IncFontSize, false); NewRuns = this.content[EndPos].Apply_TextPr(TextPr, IncFontSize, false);
...@@ -4824,6 +4832,9 @@ CMathContent.prototype = ...@@ -4824,6 +4832,9 @@ CMathContent.prototype =
if(RRun !== null) if(RRun !== null)
{ {
this.Internal_Content_Add(EndPos+1, RRun); this.Internal_Content_Add(EndPos+1, RRun);
//if(bDirect && true === this.content[this.Selection.Start].Selection_IsEmpty(true))
} }
} }
...@@ -4850,17 +4861,32 @@ CMathContent.prototype = ...@@ -4850,17 +4861,32 @@ CMathContent.prototype =
this.content[StartPos].Apply_TextPr(TextPr, IncFontSize, true); 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++; 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++; 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--; 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--; this.Selection.Start--;
} }
}
} }
if(this.bRoot)
console.log("ApplyToAll " + ApplyToAll + " Start " + this.Selection.Start + " End " + this.Selection.End);
}, },
Internal_Content_Add : function(Pos, Item) 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