author | Tetsuharu OHZEKI <saneyuki.s.snyk@gmail.com> |
Thu, 03 Jan 2013 17:18:44 -0500 (2013-01-03) | |
changeset 117517 | 29080e5ecaedfd7b98e99c24b1844d2e90acfb99 |
parent 117516 | 190318a9118a09e92c181e33c97936e3d6efbb16 |
child 117518 | 6abeaaa94f24fc7c168c718074f7f9a2801f5f59 |
push id | 24101 |
push user | eakhgari@mozilla.com |
push date | Fri, 04 Jan 2013 17:24:40 +0000 (2013-01-04) |
treeherder | mozilla-central@259982750c29 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | cpeterson |
bugs | 826025 |
milestone | 20.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/mobile/android/chrome/content/browser.js +++ b/mobile/android/chrome/content/browser.js @@ -3937,38 +3937,38 @@ var BrowserEventHandler = { // the user wanted, and neither can any non-root sub-frame, cancel the // override so that Java can handle panning the main document. let data = JSON.parse(aData); // round the scroll amounts because they come in as floats and might be // subject to minor rounding errors because of zoom values. I've seen values // like 0.99 come in here and get truncated to 0; this avoids that problem. let zoom = BrowserApp.selectedTab._zoom; - data.x = Math.round(data.x / zoom); - data.y = Math.round(data.y / zoom); + let x = Math.round(data.x / zoom); + let y = Math.round(data.y / zoom); if (this._firstScrollEvent) { while (this._scrollableElement != null && - !this._elementCanScroll(this._scrollableElement, data.x, data.y)) + !this._elementCanScroll(this._scrollableElement, x, y)) this._scrollableElement = this._findScrollableElement(this._scrollableElement, false); let doc = BrowserApp.selectedBrowser.contentDocument; if (this._scrollableElement == null || this._scrollableElement == doc.body || this._scrollableElement == doc.documentElement) { sendMessageToJava({ gecko: { type: "Panning:CancelOverride" } }); return; } this._firstScrollEvent = false; } // Scroll the scrollable element - if (this._elementCanScroll(this._scrollableElement, data.x, data.y)) { - this._scrollElementBy(this._scrollableElement, data.x, data.y); + if (this._elementCanScroll(this._scrollableElement, x, y)) { + this._scrollElementBy(this._scrollableElement, x, y); sendMessageToJava({ gecko: { type: "Gesture:ScrollAck", scrolled: true } }); SelectionHandler.subdocumentScrolled(this._scrollableElement); } else { sendMessageToJava({ gecko: { type: "Gesture:ScrollAck", scrolled: false } }); } break; } @@ -3977,24 +3977,25 @@ var BrowserEventHandler = { this._cancelTapHighlight(); break; case "Gesture:SingleTap": { let element = this._highlightElement; if (element) { try { let data = JSON.parse(aData); + let [x, y] = [data.x, data.y]; if (ElementTouchHelper.isElementClickable(element)) { - [data.x, data.y] = this._moveClickPoint(element, data.x, data.y); - element = ElementTouchHelper.anyElementFromPoint(data.x, data.y); + [x, y] = this._moveClickPoint(element, x, y); + element = ElementTouchHelper.anyElementFromPoint(x, y); } - this._sendMouseEvent("mousemove", element, data.x, data.y); - this._sendMouseEvent("mousedown", element, data.x, data.y); - this._sendMouseEvent("mouseup", element, data.x, data.y); + this._sendMouseEvent("mousemove", element, x, y); + this._sendMouseEvent("mousedown", element, x, y); + this._sendMouseEvent("mouseup", element, x, y); // See if its a input element if ((element instanceof HTMLInputElement && element.mozIsTextField(false)) || (element instanceof HTMLTextAreaElement)) SelectionHandler.showThumb(element); } catch(e) { Cu.reportError(e); }