Commit 53cd62e0 authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Поправил проблему с переключением листов при resize. Баг http://bugzserver/show_bug.cgi?id=22467

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@54793 954022d7-b5bf-4e40-9824-e11837661b57
parent 2d6a3d03
...@@ -1088,9 +1088,14 @@ ...@@ -1088,9 +1088,14 @@
this.wsActive = index; this.wsActive = index;
ws = this.getWorksheet(index); ws = this.getWorksheet(index);
// Мы меняли zoom, но не перерисовывали данный лист (он был не активный) // Мы делали resize или меняли zoom, но не перерисовывали данный лист (он был не активный)
if (ws.updateZoom) if (ws.updateResize && ws.updateZoom)
ws.changeZoomResize();
else if (ws.updateResize)
ws.resize(true);
else if (ws.updateZoom)
ws.changeZoom(true); ws.changeZoom(true);
if (isResized) if (isResized)
ws.objectRender.resizeCanvas(); ws.objectRender.resizeCanvas();
...@@ -1195,7 +1200,13 @@ ...@@ -1195,7 +1200,13 @@
/** @param event {jQuery.Event} */ /** @param event {jQuery.Event} */
WorkbookView.prototype.resize = function (event) { WorkbookView.prototype.resize = function (event) {
if (this._canResize()) { if (this._canResize()) {
this.getWorksheet().resize(); var item;
var activeIndex = this.model.getActive();
for(var i in this.wsViews) if (this.wsViews.hasOwnProperty(i)) {
item = this.wsViews[i];
// Делаем resize (для не активных сменим как только сделаем его активным)
item.resize(/*isDraw*/i == activeIndex);
}
this.showWorksheet(undefined, true); this.showWorksheet(undefined, true);
} else { } else {
...@@ -1225,16 +1236,14 @@ ...@@ -1225,16 +1236,14 @@
var item; var item;
var activeIndex = this.model.getActive(); var activeIndex = this.model.getActive();
for(var i in this.wsViews) { for(var i in this.wsViews) if (this.wsViews.hasOwnProperty(i)) {
if (this.wsViews.hasOwnProperty(i)) { item = this.wsViews[i];
item = this.wsViews[i]; // Меняем zoom (для не активных сменим как только сделаем его активным)
// Меняем zoom (для не активных сменим как только сделаем его активным) item.changeZoom(/*isDraw*/i == activeIndex);
item.changeZoom(/*isDraw*/i == activeIndex); item.objectRender.changeZoom(this.drawingCtx.scaleFactor);
item.objectRender.changeZoom(this.drawingCtx.scaleFactor); if (i == activeIndex) {
if (i == activeIndex) { item.draw();
item.draw(); //ToDo item.drawDepCells();
//ToDo item.drawDepCells();
}
} }
} }
......
...@@ -288,6 +288,8 @@ ...@@ -288,6 +288,8 @@
this.stringRender = stringRender; this.stringRender = stringRender;
// Флаг, сигнализирует о том, что мы сделали resize, но это не активный лист (поэтому как только будем показывать, нужно перерисовать и пересчитать кеш)
this.updateResize = false;
// Флаг, сигнализирует о том, что мы сменили zoom, но это не активный лист (поэтому как только будем показывать, нужно перерисовать и пересчитать кеш) // Флаг, сигнализирует о том, что мы сменили zoom, но это не активный лист (поэтому как только будем показывать, нужно перерисовать и пересчитать кеш)
this.updateZoom = false; this.updateZoom = false;
...@@ -496,11 +498,16 @@ ...@@ -496,11 +498,16 @@
return this._getRange(this.activeRange.c1, this.activeRange.r1, this.activeRange.c2, this.activeRange.r2); return this._getRange(this.activeRange.c1, this.activeRange.r1, this.activeRange.c2, this.activeRange.r2);
}; };
WorksheetView.prototype.resize = function () { WorksheetView.prototype.resize = function (isUpdate) {
this._initCellsArea(true); if (isUpdate) {
this._normalizeViewRange(); this._initCellsArea(true);
this._cleanCellsTextMetricsCache(); this._normalizeViewRange();
this._prepareCellTextMetricsCache(this.visibleRange); this._cleanCellsTextMetricsCache();
this._prepareCellTextMetricsCache(this.visibleRange);
this.updateResize = false;
} else {
this.updateResize = true;
}
return this; return this;
}; };
...@@ -525,6 +532,20 @@ ...@@ -525,6 +532,20 @@
} }
return this; return this;
}; };
WorksheetView.prototype.changeZoomResize = function () {
this.cleanSelection();
this._initConstValues();
this._initCellsArea(true);
this._normalizeViewRange();
this._cleanCellsTextMetricsCache();
this._shiftVisibleRange();
this._prepareCellTextMetricsCache(this.visibleRange);
this._shiftVisibleRange();
this.cellCommentator.updateCommentPosition();
this.updateResize = false;
this.updateZoom = false;
};
WorksheetView.prototype.getCellTextMetrics = function (col, row) { WorksheetView.prototype.getCellTextMetrics = function (col, row) {
var ct = this._getCellTextCache(col, row); var ct = this._getCellTextCache(col, row);
......
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