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