Commit 62e9f30f authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Поправил открытие редактора ячеки для закрепленных областей + когда области...

Поправил открытие редактора ячеки для закрепленных областей + когда области закреплены, расширение окна ввода ограничивается закрепленной областью.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@54516 954022d7-b5bf-4e40-9824-e11837661b57
parent ac933a6d
...@@ -9779,19 +9779,19 @@ ...@@ -9779,19 +9779,19 @@
return true; return true;
}; };
WorksheetView.prototype.openCellEditor = function (editor, x, y, isCoord, fragments, cursorPos, isFocus, isClearCell, WorksheetView.prototype.openCellEditor = function (editor, x, y, isCoord, fragments, cursorPos,
isHideCursor, activeRange) { isFocus, isClearCell, isHideCursor, activeRange) {
var t = this, vr = t.visibleRange, tc = t.cols, tr = t.rows, col, row, c, fl, mc, bg; var t = this, vr = t.visibleRange.clone(), tc = t.cols, tr = t.rows, col, row, c, fl, mc, bg;
var offsetFrozen = t.getFrozenPaneOffset(); var offsetX = 0, offsetY = 0;
var ar = t.activeRange; var ar = t.activeRange;
if (activeRange) if (activeRange)
t.activeRange = activeRange.clone(); t.activeRange = activeRange.clone();
if ( t.objectRender.checkCursorDrawingObject(x, y) ) if (t.objectRender.checkCursorDrawingObject(x, y))
return false; return false;
function getLeftSide(col) { function getLeftSide(col) {
var i, res = [], offs = t.cols[vr.c1].left - t.cols[0].left - offsetFrozen.offsetX; var i, res = [], offs = t.cols[vr.c1].left - t.cols[0].left - offsetX;
for (i = col; i >= vr.c1; --i) { for (i = col; i >= vr.c1; --i) {
if (t.width_1px < t.cols[i].width) if (t.width_1px < t.cols[i].width)
res.push(t.cols[i].left - offs); res.push(t.cols[i].left - offs);
...@@ -9800,7 +9800,7 @@ ...@@ -9800,7 +9800,7 @@
} }
function getRightSide(col) { function getRightSide(col) {
var i, w, res = [], offs = t.cols[vr.c1].left - t.cols[0].left - offsetFrozen.offsetX; var i, w, res = [], offs = t.cols[vr.c1].left - t.cols[0].left - offsetX;
// Для замерженных ячеек, можем уйти за границу // Для замерженных ячеек, можем уйти за границу
if (fl.isMerged && col > vr.c2) if (fl.isMerged && col > vr.c2)
...@@ -9819,7 +9819,7 @@ ...@@ -9819,7 +9819,7 @@
} }
function getBottomSide(row) { function getBottomSide(row) {
var i, h, res = [], offs = t.rows[vr.r1].top - t.rows[0].top - offsetFrozen.offsetY; var i, h, res = [], offs = t.rows[vr.r1].top - t.rows[0].top - offsetY;
// Для замерженных ячеек, можем уйти за границу // Для замерженных ячеек, можем уйти за границу
if (fl.isMerged && row > vr.r2) if (fl.isMerged && row > vr.r2)
...@@ -9865,22 +9865,20 @@ ...@@ -9865,22 +9865,20 @@
var bIsUpdateX = false; var bIsUpdateX = false;
var bIsUpdateY = false; var bIsUpdateY = false;
if (mc.c1 < vr.c1) { if (mc.c1 < vr.c1) {
vr.c1 = mc.c1; t.visibleRange.c1 = vr.c1 = mc.c1;
bIsUpdateX = true; bIsUpdateX = true;
t._calcVisibleColumns(); t._calcVisibleColumns();
} }
if (mc.r1 < vr.r1) { if (mc.r1 < vr.r1) {
vr.r1 = mc.r1; t.visibleRange.r1 = vr.r1 = mc.r1;
bIsUpdateY = true; bIsUpdateY = true;
t._calcVisibleRows(); t._calcVisibleRows();
} }
if (bIsUpdateX && bIsUpdateY) { if (bIsUpdateX && bIsUpdateY) {
this.handlers.trigger("reinitializeScroll"); this.handlers.trigger("reinitializeScroll");
} } else if (bIsUpdateX) {
else if (bIsUpdateX) {
this.handlers.trigger("reinitializeScrollX"); this.handlers.trigger("reinitializeScrollX");
} } else if (bIsUpdateY) {
else if (bIsUpdateY) {
this.handlers.trigger("reinitializeScrollY"); this.handlers.trigger("reinitializeScrollY");
} }
...@@ -9889,6 +9887,27 @@ ...@@ -9889,6 +9887,27 @@
} }
} }
if (this.topLeftFrozenCell) {
var cFrozen = this.topLeftFrozenCell.getCol0();
var rFrozen = this.topLeftFrozenCell.getRow0();
if (0 < cFrozen) {
if (col > cFrozen)
offsetX = tc[cFrozen].left - tc[0].left;
else {
vr.c1 = 0;
vr.c2 = cFrozen - 1;
}
}
if (0 < rFrozen) {
if (row > rFrozen)
offsetY = tr[rFrozen].top - tr[0].top;
else {
vr.r1 = 0;
vr.r2 = rFrozen - 1;
}
}
}
bg = c.getFill(); bg = c.getFill();
t.isFormulaEditMode = false; t.isFormulaEditMode = false;
// Очищаем массив ячеек для текущей формулы // Очищаем массив ячеек для текущей формулы
...@@ -9906,8 +9925,8 @@ ...@@ -9906,8 +9925,8 @@
} }
editor.open({ editor.open({
cellX: t.cellsLeft + tc[!fl.isMerged ? col : mc.c1].left - tc[vr.c1].left + offsetFrozen.offsetX, cellX: t.cellsLeft + tc[!fl.isMerged ? col : mc.c1].left - tc[vr.c1].left + offsetX,
cellY: t.cellsTop + tr[!fl.isMerged ? row : mc.r1].top - tr[vr.r1].top + offsetFrozen.offsetY, cellY: t.cellsTop + tr[!fl.isMerged ? row : mc.r1].top - tr[vr.r1].top + offsetY,
leftSide: getLeftSide(!fl.isMerged ? col : mc.c1), leftSide: getLeftSide(!fl.isMerged ? col : mc.c1),
rightSide: getRightSide(!fl.isMerged ? col : mc.c2), rightSide: getRightSide(!fl.isMerged ? col : mc.c2),
bottomSide: getBottomSide(!fl.isMerged ? row : mc.r2), bottomSide: getBottomSide(!fl.isMerged ? row : mc.r2),
......
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