Commit 61db8995 authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

При расчете видимого числа колонок и строк на экране для scroll необходимо...

При расчете видимого числа колонок и строк на экране для scroll необходимо учитывать ширину ползунка scroll-а, а также на открытии нужно инициализировать число колонок и строк (чтобы показать последнюю)
Баг http://bugzserver/show_bug.cgi?id=23513

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@55282 954022d7-b5bf-4e40-9824-e11837661b57
parent c540acba
......@@ -490,8 +490,10 @@
WorkbookView.prototype._onScrollReinitialize = function (whichSB, callback) {
var ws = this.getWorksheet(),
vsize = !whichSB || whichSB === 1 ? ws.getVerticalScrollRange() : undefined,
hsize = !whichSB || whichSB === 2 ? ws.getHorizontalScrollRange() : undefined;
vsize = !whichSB || whichSB === 1 ?
ws.getVerticalScrollRange(this.Api.isMobileVersion ? 0 : this.defaults.scroll.heightPx) : undefined,
hsize = !whichSB || whichSB === 2 ?
ws.getHorizontalScrollRange(this.Api.isMobileVersion ? 0 : this.defaults.scroll.widthPx) : undefined;
if( vsize != undefined )
this.m_dScrollY_max = Math.max(this.controller.settings.vscrollStep * (vsize + 1), 1);
......
......@@ -469,8 +469,8 @@
return this.visibleRange.r2;
};
WorksheetView.prototype.getHorizontalScrollRange = function () {
var ctxW = this.drawingCtx.getWidth() - this.cellsLeft;
WorksheetView.prototype.getHorizontalScrollRange = function (scrollWidth) {
var ctxW = this.drawingCtx.getWidth() - this.cellsLeft - scrollWidth;
for (var w = 0, i = this.cols.length - 1; i >= 0; --i) {
w += this.cols[i].width;
if (w > ctxW) {break;}
......@@ -478,8 +478,8 @@
return i; // Диапазон скрола должен быть меньше количества столбцов, чтобы не было прибавления столбцов при перетаскивании бегунка
};
WorksheetView.prototype.getVerticalScrollRange = function () {
var ctxH = this.drawingCtx.getHeight() - this.cellsTop;
WorksheetView.prototype.getVerticalScrollRange = function (scrollHeight) {
var ctxH = this.drawingCtx.getHeight() - this.cellsTop - scrollHeight;
for (var h = 0, i = this.rows.length - 1; i >= 0; --i) {
h += this.rows[i].height;
if (h > ctxH) {break;}
......@@ -1174,6 +1174,11 @@
var sr = this.stringRender;
var tm = this._roundTextMetrics(sr.measureString("A"));
this.headersHeightByFont = tm.height;
// Инициализируем число колонок и строк (при открытии). Причем нужно поставить на 1 больше,
// чтобы могли показать последнюю строку/столбец (http://bugzserver/show_bug.cgi?id=23513)
this.nColsCount = Math.min(this.model.getColsCount() + 1, gc_nMaxCol);
this.nRowsCount = Math.min(this.model.getRowsCount() + 1, gc_nMaxRow);
};
WorksheetView.prototype._initConstValues = function () {
......@@ -1353,7 +1358,7 @@
var y = this.cellsTop;
var visibleH = this.drawingCtx.getHeight();
var obr = this.objectRender ? this.objectRender.getDrawingAreaMetrics() : {maxCol: 0, maxRow: 0};
var l = Math.max(this.model.getRowsCount() , this.nRowsCount, obr.maxRow);
var l = Math.max(this.model.getRowsCount(), this.nRowsCount, obr.maxRow);
var defaultH = this.model.getDefaultHeight() || this.defaultRowHeight;
var i = 0, h, hR, isCustomHeight, row, hiddenH = 0;
......
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