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 @@
this.wsActive = index;
ws = this.getWorksheet(index);
// Мы меняли zoom, но не перерисовывали данный лист (он был не активный)
if (ws.updateZoom)
// Мы делали resize или меняли zoom, но не перерисовывали данный лист (он был не активный)
if (ws.updateResize && ws.updateZoom)
ws.changeZoomResize();
else if (ws.updateResize)
ws.resize(true);
else if (ws.updateZoom)
ws.changeZoom(true);
if (isResized)
ws.objectRender.resizeCanvas();
......@@ -1195,7 +1200,13 @@
/** @param event {jQuery.Event} */
WorkbookView.prototype.resize = function (event) {
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);
} else {
......@@ -1225,16 +1236,14 @@
var item;
var activeIndex = this.model.getActive();
for(var i in this.wsViews) {
if (this.wsViews.hasOwnProperty(i)) {
item = this.wsViews[i];
// Меняем zoom (для не активных сменим как только сделаем его активным)
item.changeZoom(/*isDraw*/i == activeIndex);
item.objectRender.changeZoom(this.drawingCtx.scaleFactor);
if (i == activeIndex) {
item.draw();
//ToDo item.drawDepCells();
}
for(var i in this.wsViews) if (this.wsViews.hasOwnProperty(i)) {
item = this.wsViews[i];
// Меняем zoom (для не активных сменим как только сделаем его активным)
item.changeZoom(/*isDraw*/i == activeIndex);
item.objectRender.changeZoom(this.drawingCtx.scaleFactor);
if (i == activeIndex) {
item.draw();
//ToDo item.drawDepCells();
}
}
......
......@@ -288,6 +288,8 @@
this.stringRender = stringRender;
// Флаг, сигнализирует о том, что мы сделали resize, но это не активный лист (поэтому как только будем показывать, нужно перерисовать и пересчитать кеш)
this.updateResize = false;
// Флаг, сигнализирует о том, что мы сменили zoom, но это не активный лист (поэтому как только будем показывать, нужно перерисовать и пересчитать кеш)
this.updateZoom = false;
......@@ -496,11 +498,16 @@
return this._getRange(this.activeRange.c1, this.activeRange.r1, this.activeRange.c2, this.activeRange.r2);
};
WorksheetView.prototype.resize = function () {
this._initCellsArea(true);
this._normalizeViewRange();
this._cleanCellsTextMetricsCache();
this._prepareCellTextMetricsCache(this.visibleRange);
WorksheetView.prototype.resize = function (isUpdate) {
if (isUpdate) {
this._initCellsArea(true);
this._normalizeViewRange();
this._cleanCellsTextMetricsCache();
this._prepareCellTextMetricsCache(this.visibleRange);
this.updateResize = false;
} else {
this.updateResize = true;
}
return this;
};
......@@ -525,6 +532,20 @@
}
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) {
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