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

1. Поправила баг : не было возможности встать в верхний итератор в CNaryUndOvr при нажатии мышкой

2. Поправила селект для N-арных операторов : теперь при селекте одного итератора выходим за его границы (наводим мышкой на другой итератор, либо на N-арный объект), то селектиться весь N-арный объект

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58364 954022d7-b5bf-4e40-9824-e11837661b57
parent 9fd6ce63
......@@ -36,7 +36,8 @@ function CMathBase(bInside)
bOutside: false
};
this.bSelectionUse = false;
this.bSelectionUse = false;
this.bInsideUpperSelect = false;
this.nRow = 0;
this.nCol = 0;
......@@ -630,28 +631,13 @@ CMathBase.prototype =
{
if( bSelection )
{
//var SelectX, SelectY;
var oSelect;
if(bStart)
{
//SelectX = this.SelectStart_X;
//SelectY = this.SelectStart_Y;
oSelect = this.SelectStart;
//SelectX = this.SelectStart.X;
//SelectY = this.SelectStart.Y;
}
else
{
oSelect = this.SelectEnd;
//SelectX = this.SelectEnd.X;
//SelectY = this.SelectEnd.Y;
}
ContentPos.Add(oSelect.X);
ContentPos.Add(oSelect.Y);
......@@ -717,16 +703,20 @@ CMathBase.prototype =
var bJustDraw = this.elements[this.SelectStart.X][this.SelectStart.Y].IsJustDraw();
if(startX == endX && startY == endY && !bJustDraw)
{
this.elements[startX][startY].Set_SelectionContentPos(StartContentPos, EndContentPos, Depth, StartFlag, EndFlag);
}
else
if(startX == endX && startY == endY)
{
this.elements[startX][startY].Set_SelectionContentPos(StartContentPos, null, Depth, StartFlag, -1);
if(!bJustDraw)
this.elements[startX][startY].Set_SelectionContentPos(StartContentPos, EndContentPos, Depth, StartFlag, EndFlag);
else
this.elements[startX][startY].Set_SelectionContentPos(StartContentPos, null, Depth, StartFlag, -1);
}
}
/*if(this.constructor.name == "CDegreeSubSup")
{
console.log("startX " + startX + " startY " + startY + "; " + "endX " + endX + " endY " + endY);
}*/
this.bSelectionUse = true;
......@@ -742,7 +732,20 @@ CMathBase.prototype =
},
IsSelectEmpty: function()
{
return (!this.SelectStart.bOutside && !this.SelectEnd.bOutside) && (this.SelectStart.X == this.SelectEnd.X) && (this.SelectStart.Y == this.SelectEnd.Y);
var startX = this.SelectStart.X,
startY = this.SelectStart.Y;
var endX = this.SelectEnd.X,
endY = this.SelectEnd.Y;
var bEqual = (startX == endX) && (startY == endY);
var bInsideSelect = bEqual && this.elements[startX][startY].bInside == true && !this.elements[startX][startY].IsSelectEmpty();
if(this.constructor.name == "CNary")
console.log("bInsideSelect " + bInsideSelect);
return (!this.SelectStart.bOutside && !this.SelectEnd.bOutside) && bEqual && !bInsideSelect;
},
Recalculate_CurPos: function(_X, Y, CurrentRun, _CurRange, _CurLine, _CurPage, UpdateCurPos, UpdateTarget, ReturnTarget)
{
......@@ -782,8 +785,8 @@ CMathBase.prototype =
{
var start_X = this.SelectStart.X,
start_Y = this.SelectStart.Y;
if(!this.SelectStart.bOutside)
// проверка на bSelectionUse, чтобы избежать ситуации, когда селекта в этом элементе не было
if(!this.SelectStart.bOutside && this.bSelectionUse) // и нужно очистить селект у всех незаселекченных элементов контента (в тч и этом) в функции Selection_DrawRange. а стартовая и конечная позиции совпадают и в стартовой позиции находится JustDraw-элемент
this.elements[start_X][start_Y].Selection_Remove();
this.bSelectionUse = false;
......
......@@ -592,20 +592,6 @@ function CNaryUndOvr(bInside)
this.setDimension(3,1);
}
Asc.extendClass(CNaryUndOvr, CMathBase);
/*CNaryUndOvr.prototype.old_init = function(oSign)
{
this.setDimension(3,1);
var iter1 = new CMathContent();
iter1.decreaseArgSize();
var iter2 = new CMathContent();
iter2.decreaseArgSize();
var base = new CMathContent();
this.addMCToContent(iter1, base, iter2);
}*/
CNaryUndOvr.prototype.Resize = function(oMeasure, Parent, ParaMath, RPI, ArgSize)
{
this.Parent = Parent;
......@@ -653,11 +639,11 @@ CNaryUndOvr.prototype.recalculateSize = function()
CNaryUndOvr.prototype.setPosition = function(pos, PosInfo)
{
this.pos.x = pos.x;
this.pos.y = pos.y - this.size.ascent;
this.pos.y = pos.y;
var PosUpIter = new CMathPosition();
PosUpIter.x = pos.x + this.GapLeft + this.align(0, 0).x;
PosUpIter.x = pos.x + this.GapLeft + this.align(0,0).x;
PosUpIter.y = pos.y;
......
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