Backout 4253a5a838a8 and 7f5e40eb37c1

This commit is contained in:
Wes Johnston 2012-03-05 12:01:48 -08:00
parent aa898d4232
commit 44b468dead

View File

@ -1630,8 +1630,6 @@ Tab.prototype = {
}, },
set viewport(aViewport) { set viewport(aViewport) {
BrowserEventHandler._cancelTapHighlight();
// Transform coordinates based on zoom // Transform coordinates based on zoom
aViewport.x /= aViewport.zoom; aViewport.x /= aViewport.zoom;
aViewport.y /= aViewport.zoom; aViewport.y /= aViewport.zoom;
@ -2220,7 +2218,7 @@ Tab.prototype = {
var BrowserEventHandler = { var BrowserEventHandler = {
init: function init() { init: function init() {
Services.obs.addObserver(this, "Gesture:SingleTap", false); Services.obs.addObserver(this, "Gesture:SingleTap", false);
document.addEventListener("touchstart", this, false); Services.obs.addObserver(this, "Gesture:ShowPress", false);
Services.obs.addObserver(this, "Gesture:CancelTouch", false); Services.obs.addObserver(this, "Gesture:CancelTouch", false);
Services.obs.addObserver(this, "Gesture:DoubleTap", false); Services.obs.addObserver(this, "Gesture:DoubleTap", false);
Services.obs.addObserver(this, "Gesture:Scroll", false); Services.obs.addObserver(this, "Gesture:Scroll", false);
@ -2229,34 +2227,6 @@ var BrowserEventHandler = {
BrowserApp.deck.addEventListener("DOMUpdatePageReport", PopupBlockerObserver.onUpdatePageReport, false); BrowserApp.deck.addEventListener("DOMUpdatePageReport", PopupBlockerObserver.onUpdatePageReport, false);
}, },
handleEvent: function(aEvent) {
switch(aEvent.type) {
case "touchstart":
if (aEvent.touches.length == 1) {
let closest = ElementTouchHelper.elementFromPoint(BrowserApp.selectedBrowser.contentWindow,
aEvent.touches[0].screenX, aEvent.touches[0].screenY);
if (!closest) {
closest = ElementTouchHelper.anyElementFromPoint(BrowserApp.selectedBrowser.contentWindow,
aEvent.touches[0].screenX, aEvent.touches[0].screenY);
}
if (closest) {
this._doTapHighlight(closest);
// If we've pressed a scrollable element, let Java know that we may
// want to override the scroll behaviour (for document sub-frames)
this._scrollableElement = this._findScrollableElement(closest, true);
this._firstScrollEvent = true;
if (this._scrollableElement != null) {
// Discard if it's the top-level scrollable, we let Java handle this
let doc = BrowserApp.selectedBrowser.contentDocument;
if (this._scrollableElement != doc.body && this._scrollableElement != doc.documentElement)
sendMessageToJava({ gecko: { type: "Panning:Override" } });
}
}
}
}
},
observe: function(aSubject, aTopic, aData) { observe: function(aSubject, aTopic, aData) {
if (aTopic == "Gesture:Scroll") { if (aTopic == "Gesture:Scroll") {
// If we've lost our scrollable element, return. Don't cancel the // If we've lost our scrollable element, return. Don't cancel the
@ -2291,6 +2261,26 @@ var BrowserEventHandler = {
} }
} else if (aTopic == "Gesture:CancelTouch") { } else if (aTopic == "Gesture:CancelTouch") {
this._cancelTapHighlight(); this._cancelTapHighlight();
} else if (aTopic == "Gesture:ShowPress") {
let data = JSON.parse(aData);
let closest = ElementTouchHelper.elementFromPoint(BrowserApp.selectedBrowser.contentWindow, data.x, data.y);
if (!closest)
closest = ElementTouchHelper.anyElementFromPoint(BrowserApp.selectedBrowser.contentWindow, data.x, data.y);
if (closest) {
this._doTapHighlight(closest);
// If we've pressed a scrollable element, let Java know that we may
// want to override the scroll behaviour (for document sub-frames)
this._scrollableElement = this._findScrollableElement(closest, true);
this._firstScrollEvent = true;
if (this._scrollableElement != null) {
// Discard if it's the top-level scrollable, we let Java handle this
let doc = BrowserApp.selectedBrowser.contentDocument;
if (this._scrollableElement != doc.body && this._scrollableElement != doc.documentElement)
sendMessageToJava({ gecko: { type: "Panning:Override" } });
}
}
} else if (aTopic == "Gesture:SingleTap") { } else if (aTopic == "Gesture:SingleTap") {
let element = this._highlightElement; let element = this._highlightElement;
if (element && !SelectHelper.handleClick(element)) { if (element && !SelectHelper.handleClick(element)) {