Bug 518642 - zoom level is reset when softkb is displayed

This commit is contained in:
Vivian Nicolas 2009-11-24 11:44:05 -08:00
Родитель f3f9b8af26
Коммит fac4cd4f32
4 изменённых файлов: 23 добавлений и 38 удалений

Просмотреть файл

@ -331,7 +331,6 @@ BrowserView.prototype = {
this.setViewportDimensions(this.browserToViewport(browserW),
this.browserToViewport(browserH),
true);
bvs.zoomChanged = true;
if (this._browser) {
let event = document.createEvent("Events");
@ -585,8 +584,10 @@ BrowserView.prototype = {
zoomToPage: function zoomToPage() {
// See invalidateEntireView() for why we might be suppressing this zoom.
if (!this._suppressZoomToPage)
if (!this._suppressZoomToPage) {
this._browserViewportState.defaultZoomLevel = this.getZoomForPage();
this.setZoomLevel(this.getZoomForPage());
}
},
getZoomForPage: function getZoomForPage() {
@ -831,11 +832,7 @@ BrowserView.prototype = {
* does keep the top and left coordinates (cf visibleX, visibleY)), since those are not
* characteristic of the current browser in view.
*/
BrowserView.BrowserViewportState = function(viewportRect,
visibleX,
visibleY,
zoomLevel) {
BrowserView.BrowserViewportState = function(viewportRect, visibleX, visibleY, zoomLevel) {
this.init(viewportRect, visibleX, visibleY, zoomLevel);
};
@ -846,23 +843,16 @@ BrowserView.BrowserViewportState.prototype = {
this.visibleX = visibleX;
this.visibleY = visibleY;
this.zoomLevel = zoomLevel;
this.zoomChanged = false;
},
clone: function clone() {
return new BrowserView.BrowserViewportState(this.viewportRect,
this.visibleX,
this.visibleY,
this.zoomLevel);
this.defaultZoomLevel = 1;
},
toString: function toString() {
let props = ['\tviewportRect=' + this.viewportRect.toString(),
'\tvisibleX=' + this.visibleX,
'\tvisibleY=' + this.visibleY,
'\tzoomLevel=' + this.zoomLevel];
let props = ["\tviewportRect=" + this.viewportRect.toString(),
"\tvisibleX=" + this.visibleX,
"\tvisibleY=" + this.visibleY,
"\tzoomLevel=" + this.zoomLevel];
return '[BrowserViewportState] {\n' + props.join(',\n') + '\n}';
return "[BrowserViewportState] {\n" + props.join(",\n") + "\n}";
}
};

Просмотреть файл

@ -1161,9 +1161,10 @@ ScrollwheelModule.prototype = {
evInfo.event.preventDefault();
}
},
handleEventImpl: function handleEventImpl(zoomlevel) {
this.pendingEvent = 0;
Browser.zoom(zoomlevel);
this.pendingEvent = 0;
Browser.zoom(zoomlevel);
},
/* We don't have much state to reset if we lose event focus */

Просмотреть файл

@ -794,10 +794,10 @@ var BrowserUI = {
break;
}
case "cmd_zoomin":
Browser._browserView.zoom(-1);
Browser.zoom(-1);
break;
case "cmd_zoomout":
Browser._browserView.zoom(1);
Browser.zoom(1);
break;
}
}

Просмотреть файл

@ -407,13 +407,12 @@ var Browser = {
// Tell the UI to resize the browser controls before calling updateSize
BrowserUI.sizeControls(w, h);
bv.zoomToPage();
// zoomChanged gets set to true, but user did not change zooming
bv._browserViewportState.zoomChanged = false;
// hidesidebars calls bv.onAfterVisibleMove();
Browser.hideSidebars();
let bvs = Browser.selectedTab.browserViewportState;
if (bvs.zoomLevel == bvs.defaultZoomLevel) {
bv.zoomToPage();
Browser.hideSidebars();
bv.onAfterVisibleMove();
}
bv.commitBatchOperation();
}
@ -2509,13 +2508,10 @@ Tab.prototype = {
if (this == Browser.selectedTab) {
let restoringPage = (this._state != null);
if (!this._browserViewportState.zoomChanged && !restoringPage) {
if (this._browserViewportState.zoomLevel == this._browserViewportState.defaultZoomLevel && !restoringPage) {
// Only fit page if user hasn't started zooming around and this is a page that
// isn't being restored.
bv.zoomToPage();
// zoomChanged gets set to true, but user did not change zooming
this._browserViewportState.zoomChanged = false;
}
}
@ -2537,7 +2533,7 @@ Tab.prototype = {
startLoading: function() {
this._loading = true;
this._browserViewportState.zoomChanged = false;
this._browserViewportState.defaultZoomLevel = this._browserViewportState.zoomLevel;
if (!this._loadingTimeout) {
Browser._browserView.beginBatchOperation();
@ -2576,8 +2572,6 @@ Tab.prototype = {
browser.className = "browser";
}
//if (!this._loading)
// dump("!!! Already finished loading this tab, please file a bug\n");
this.setIcon(browser.mIconURL);
this._loading = false;