Commit 6565c4d9 authored by Dmitry.Shahtanov's avatar Dmitry.Shahtanov Committed by Alexander.Trofimov

подправлен скролл для таблицах

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@68833 954022d7-b5bf-4e40-9824-e11837661b57
parent 04f5c1f1
......@@ -1555,6 +1555,8 @@ function ScrollObject( elemID, settings, dbg ) {
this.scroller = {x:0, y:1, h:0, w:0};
this.correct = 0;
this.canvas = null;
this.context = null;
......@@ -1986,7 +1988,7 @@ ScrollObject.prototype = {
// Новое смещение превышает maxScroll, надо вызвать ивент, спрашивающий что делать.
// Чтобы не создавать новый, использую onscrollVEnd, он все равно больше нигде не используется
// 50 = max число wheelScrollLine, если она больше, то будет работать неправильно
for ( var c = 50; destY > this.maxScrollY && c > 0; --c ) {
for ( var c = 50; destY > this.maxScrollY+this.correct && c > 0; --c ) {
this.handleEvents( "onscrollVEnd", {} );
vend = true;
}
......@@ -2050,7 +2052,7 @@ ScrollObject.prototype = {
isBottom = false;
}
else if ( destX > this.maxScrollX ) {
for ( var c = 50; destX > this.maxScrollX && c > 0; --c ) {
for ( var c = 50; destX > this.maxScrollX+this.correct && c > 0; --c ) {
this.handleEvents( "onscrollHEnd", {} );
hend = true;
}
......
......@@ -220,7 +220,7 @@
};
/** @param [whichSB] {Number} Scroll bar to reinit (1=vertical, 2=horizontal) */
asc_CEventsController.prototype.reinitializeScroll = function (whichSB) {
asc_CEventsController.prototype.reinitializeScroll = function (whichSB,canScroll) {
if (window["NATIVE_EDITOR_ENJINE"])
return;
......@@ -233,16 +233,24 @@
if (isVert || isHoriz) {
this.handlers.trigger("reinitializeScroll", whichSB, function (vSize, hSize) {
if (isVert) {
vSize = self.vsb.offsetHeight + Math.max(vSize * opt.vscrollStep, 1);
vSize = self.vsb.offsetHeight + Math.max( (vSize + 1) * opt.vscrollStep, 1 );
// this.m_dScrollY_max = vSize;
self.vsbHSt.height = vSize + "px";
self.vsbApi.correct = 0;
if ( canScroll ) {
self.vsbApi.correct = opt.vscrollStep * 5;
}
self.vsbApi.Reinit(opt, opt.vscrollStep * ws.getFirstVisibleRow(/*allowPane*/true));
}
if (isHoriz) {
hSize = self.hsb.offsetWidth + Math.max(hSize * opt.hscrollStep, 1);
hSize = self.hsb.offsetWidth + Math.max( (hSize + 1) * opt.hscrollStep, 1 );
// this.m_dScrollX_max = hSize ;
self.hsbHSt.correct = 0;
if ( canScroll ) {
self.hsbApi.correct = opt.hscrollStep * 5;
}
self.hsbHSt.width = hSize + "px";
self.hsbApi.Reinit(opt, opt.vscrollStep * ws.getFirstVisibleCol(/*allowPane*/true));
self.hsbApi.Reinit(opt, opt.hscrollStep * ws.getFirstVisibleCol(/*allowPane*/true));
}
});
}
......
......@@ -465,7 +465,7 @@
for (var i in self.wsViews) {
self.wsViews[i].cleanFormulaRanges();
}
ws.cleanFormulaRanges();
// ws.cleanFormulaRanges();
ws.setFormulaEditMode.apply(ws, arguments);
}
}, "updateEditorState": function(state) {
......@@ -1306,7 +1306,10 @@
WorkbookView.prototype._onAddColumn = function(isNotActive) {
var res = this.getWorksheet().expandColsOnScroll(isNotActive);
if (res) {
this.controller.reinitializeScroll(/*horizontal*/2);
if(res == 1)
this.controller.reinitializeScroll(/*horizontal*/2);
else
this.controller.reinitializeScroll(/*horizontal*/2,true);
}
};
......@@ -1315,7 +1318,10 @@
if (res) { // Добавлены строки
// после добавления controller.settings.wheelScrollLines
// ws.scrollVertical() здесь не нужен, scroll.js сам все разрулит
this.controller.reinitializeScroll(/*vertical*/1);
if(res == 1)
this.controller.reinitializeScroll(/*vertical*/1);
else
this.controller.reinitializeScroll(/*vertical*/1,true);
}
};
......
......@@ -10452,7 +10452,12 @@
if ( this.objectRender && this.objectRender.drawingArea ) {
this.objectRender.drawingArea.reinitRanges();
}
return (nLastCols !== this.nColsCount || bIsMaxCols);
if ( nLastCols !== this.nColsCount )
return 1;
if ( bIsMaxCols )
return 2;
return (nLastCols !== this.nColsCount || bIsMaxCols);
};
WorksheetView.prototype.expandRowsOnScroll = function ( isNotActive, updateRowsCount, newRowsCount ) {
......@@ -10495,7 +10500,12 @@
if ( this.objectRender && this.objectRender.drawingArea ) {
this.objectRender.drawingArea.reinitRanges();
}
return (nLastRows !== this.nRowsCount || bIsMaxRows);
if ( nLastRows !== this.nRowsCount )
return 1;
if ( bIsMaxRows )
return 2;
return (nLastRows !== this.nRowsCount || bIsMaxRows);
};
WorksheetView.prototype.onChangeWidthCallback = function ( col, r1, r2, onlyIfMore ) {
......
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