зеркало из https://github.com/mozilla/gecko-dev.git
Bug 598234 - Fix bad scrolling on resize with formhelper [r=mfinkle]
This commit is contained in:
Родитель
fd3b89d9b2
Коммит
11247f94cf
|
@ -519,8 +519,6 @@
|
|||
|
||||
<!-- Get position of viewport in device pixels. -->
|
||||
<method name="getPosition">
|
||||
<parameter name="scrollX"/>
|
||||
<parameter name="scrollY"/>
|
||||
<body>
|
||||
<![CDATA[
|
||||
let scrollX = {}, scrollY = {};
|
||||
|
|
|
@ -1968,26 +1968,27 @@ var FormHelperUI = {
|
|||
let x = (marginLeft + marginRight + margin + aCaretRect.x - aElementRect.x) < viewAreaWidth
|
||||
? aElementRect.x - margin - marginLeft
|
||||
: aCaretRect.x - viewAreaWidth + margin + marginRight;
|
||||
// use the adjustet Caret Y minus a margin four our visible rect
|
||||
// Use the adjusted Caret Y minus a margin for our visible rect
|
||||
let y = harmonizedCaretY - margin;
|
||||
x *= browser.scale;
|
||||
y *= browser.scale;
|
||||
|
||||
let scroll = browser.getPosition(scrollX, scrollY);
|
||||
let vis = new Rect(scroll.x, scroll.y, window.innerWidth, window.innerHeight);
|
||||
let scroll = browser.getPosition();
|
||||
|
||||
// from here on play with zoomed values
|
||||
// if we want to have it animated, build up zoom rect and animate.
|
||||
if (enableZoom && browser.scale != zoomLevel) {
|
||||
// don't use browser functions they are bogus for this case
|
||||
let zoomRatio = zoomLevel / browser.scale;
|
||||
let newVisW = vis.width / zoomRatio, newVisH = vis.height / zoomRatio;
|
||||
|
||||
let visW = window.innerWidth, visH = window.innerHeight;
|
||||
let newVisW = visW / zoomRatio, newVisH = visH / zoomRatio;
|
||||
let zoomRect = new Rect(x, y, newVisW, newVisH);
|
||||
|
||||
Browser.animatedZoomTo(zoomRect);
|
||||
}
|
||||
else { // no zooming at all
|
||||
browser.scrollBy(x - vis.x, y - vis.y);
|
||||
browser.scrollTo(x, y);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -262,7 +262,7 @@ var Browser = {
|
|||
getBrowser().style.display = "block";
|
||||
|
||||
let curEl = document.activeElement;
|
||||
if (curEl && curEl.scrollIntoView)
|
||||
if (curEl && curEl.id != "inputhandler-overlay" && curEl.scrollIntoView)
|
||||
curEl.scrollIntoView(false);
|
||||
}
|
||||
window.addEventListener("resize", resizeHandler, false);
|
||||
|
|
Загрузка…
Ссылка в новой задаче