зеркало из https://github.com/mozilla/pjs.git
bug 623820 - Text zoom reflow messes up layout on AMO and other sites r=mfinkle a=blocking-fennec
This commit is contained in:
Родитель
959f366f46
Коммит
c5f97c95e0
|
@ -405,6 +405,7 @@ pref("browser.ui.kinetic.swipeLength", 160);
|
|||
pref("browser.ui.zoom.pageFitGranularity", 9); // don't zoom to fit by less than 1/9 (11%)
|
||||
pref("browser.ui.zoom.animationDuration", 200); // ms duration of double-tap zoom animation
|
||||
pref("browser.ui.zoom.reflow", false); // Change text wrapping on double-tap
|
||||
pref("browser.ui.zoom.reflow.fontSize", 720);
|
||||
|
||||
// pinch gesture
|
||||
pref("browser.ui.pinch.maxGrowth", 150); // max pinch distance growth
|
||||
|
|
|
@ -358,10 +358,8 @@ let Content = {
|
|||
}
|
||||
|
||||
case "pagehide":
|
||||
if (aEvent.target == content.document) {
|
||||
this._isZoomedToElement = false;
|
||||
this._setTextZoom(1);
|
||||
}
|
||||
if (aEvent.target == content.document)
|
||||
this._resetFontSize();
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
@ -521,8 +519,7 @@ let Content = {
|
|||
case "Browser:ZoomToPoint": {
|
||||
let rect = null;
|
||||
if (this._isZoomedToElement) {
|
||||
this._isZoomedToElement = false;
|
||||
this._setTextZoom(1);
|
||||
this._resetFontSize();
|
||||
} else {
|
||||
this._isZoomedToElement = true;
|
||||
let element = elementFromPoint(x, y);
|
||||
|
@ -533,7 +530,9 @@ let Content = {
|
|||
rect = getBoundingContentRect(element);
|
||||
if (Services.prefs.getBoolPref("browser.ui.zoom.reflow")) {
|
||||
sendAsyncMessage("Browser:ZoomToPoint:Return", { x: x, y: y, zoomTo: rect });
|
||||
this._setTextZoom(Math.max(1, rect.width / json.width));
|
||||
|
||||
let fontSize = Services.prefs.getIntPref("browser.ui.zoom.reflow.fontSize");
|
||||
this._setMinFontSize(Math.max(1, rect.width / json.width) * fontSize);
|
||||
|
||||
let oldRect = rect;
|
||||
rect = getBoundingContentRect(element);
|
||||
|
@ -567,6 +566,11 @@ let Content = {
|
|||
}
|
||||
},
|
||||
|
||||
_resetFontSize: function _resetFontSize() {
|
||||
this._isZoomedToElement = false;
|
||||
this._setMinFontSize(0);
|
||||
},
|
||||
|
||||
_highlightElement: null,
|
||||
|
||||
_doTapHighlight: function _doTapHighlight(aElement) {
|
||||
|
@ -607,9 +611,10 @@ let Content = {
|
|||
windowUtils.sendMouseEventToWindow(aName, aX - scrollOffset.x, aY - scrollOffset.y, aButton, 1, 0, true);
|
||||
},
|
||||
|
||||
_setTextZoom: function _setTextZoom(aZoom) {
|
||||
let viewer = docShell.contentViewer.QueryInterface(Ci.nsIMarkupDocumentViewer);
|
||||
viewer.textZoom = aZoom;
|
||||
_setMinFontSize: function _setMinFontSize(aSize) {
|
||||
let viewer = docShell.contentViewer.QueryInterface(Ci.nsIMarkupDocumentViewer_MOZILLA_2_0_BRANCH);
|
||||
if (viewer)
|
||||
viewer.minFontSize = aSize;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче