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) ...@@ -36,7 +36,8 @@ function CMathBase(bInside)
bOutside: false bOutside: false
}; };
this.bSelectionUse = false; this.bSelectionUse = false;
this.bInsideUpperSelect = false;
this.nRow = 0; this.nRow = 0;
this.nCol = 0; this.nCol = 0;
...@@ -630,28 +631,13 @@ CMathBase.prototype = ...@@ -630,28 +631,13 @@ CMathBase.prototype =
{ {
if( bSelection ) if( bSelection )
{ {
//var SelectX, SelectY;
var oSelect; var oSelect;
if(bStart) if(bStart)
{
//SelectX = this.SelectStart_X;
//SelectY = this.SelectStart_Y;
oSelect = this.SelectStart; oSelect = this.SelectStart;
//SelectX = this.SelectStart.X;
//SelectY = this.SelectStart.Y;
}
else else
{
oSelect = this.SelectEnd; oSelect = this.SelectEnd;
//SelectX = this.SelectEnd.X;
//SelectY = this.SelectEnd.Y;
}
ContentPos.Add(oSelect.X); ContentPos.Add(oSelect.X);
ContentPos.Add(oSelect.Y); ContentPos.Add(oSelect.Y);
...@@ -717,16 +703,20 @@ CMathBase.prototype = ...@@ -717,16 +703,20 @@ CMathBase.prototype =
var bJustDraw = this.elements[this.SelectStart.X][this.SelectStart.Y].IsJustDraw(); var bJustDraw = this.elements[this.SelectStart.X][this.SelectStart.Y].IsJustDraw();
if(startX == endX && startY == endY && !bJustDraw) if(startX == endX && startY == endY)
{
this.elements[startX][startY].Set_SelectionContentPos(StartContentPos, EndContentPos, Depth, StartFlag, EndFlag);
}
else
{ {
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; this.bSelectionUse = true;
...@@ -742,7 +732,20 @@ CMathBase.prototype = ...@@ -742,7 +732,20 @@ CMathBase.prototype =
}, },
IsSelectEmpty: function() 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) Recalculate_CurPos: function(_X, Y, CurrentRun, _CurRange, _CurLine, _CurPage, UpdateCurPos, UpdateTarget, ReturnTarget)
{ {
...@@ -782,8 +785,8 @@ CMathBase.prototype = ...@@ -782,8 +785,8 @@ CMathBase.prototype =
{ {
var start_X = this.SelectStart.X, var start_X = this.SelectStart.X,
start_Y = this.SelectStart.Y; start_Y = this.SelectStart.Y;
// проверка на bSelectionUse, чтобы избежать ситуации, когда селекта в этом элементе не было
if(!this.SelectStart.bOutside) if(!this.SelectStart.bOutside && this.bSelectionUse) // и нужно очистить селект у всех незаселекченных элементов контента (в тч и этом) в функции Selection_DrawRange. а стартовая и конечная позиции совпадают и в стартовой позиции находится JustDraw-элемент
this.elements[start_X][start_Y].Selection_Remove(); this.elements[start_X][start_Y].Selection_Remove();
this.bSelectionUse = false; this.bSelectionUse = false;
......
...@@ -592,20 +592,6 @@ function CNaryUndOvr(bInside) ...@@ -592,20 +592,6 @@ function CNaryUndOvr(bInside)
this.setDimension(3,1); this.setDimension(3,1);
} }
Asc.extendClass(CNaryUndOvr, CMathBase); 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) CNaryUndOvr.prototype.Resize = function(oMeasure, Parent, ParaMath, RPI, ArgSize)
{ {
this.Parent = Parent; this.Parent = Parent;
...@@ -653,11 +639,11 @@ CNaryUndOvr.prototype.recalculateSize = function() ...@@ -653,11 +639,11 @@ CNaryUndOvr.prototype.recalculateSize = function()
CNaryUndOvr.prototype.setPosition = function(pos, PosInfo) CNaryUndOvr.prototype.setPosition = function(pos, PosInfo)
{ {
this.pos.x = pos.x; this.pos.x = pos.x;
this.pos.y = pos.y - this.size.ascent; this.pos.y = pos.y;
var PosUpIter = new CMathPosition(); 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; 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