зеркало из https://github.com/mozilla/gecko-dev.git
Bug 518642 - zoom level is reset when softkb is displayed
This commit is contained in:
Родитель
f3f9b8af26
Коммит
fac4cd4f32
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче