Bug 590246 - Multitouch swipe gestures [r=mfinkle]

This commit is contained in:
Matt Brubeck 2010-08-25 09:03:07 -07:00
Родитель 4094baec54
Коммит d3d3a22ff2
2 изменённых файлов: 31 добавлений и 0 удалений

Просмотреть файл

@ -127,6 +127,7 @@ function InputHandler(browserViewContainer) {
window.addEventListener("mousemove", this, true);
window.addEventListener("click", this, true);
window.addEventListener("contextmenu", this, false);
window.addEventListener("MozSwipeGesture", this, true);
window.addEventListener("MozMagnifyGestureStart", this, true);
window.addEventListener("MozMagnifyGestureUpdate", this, true);
window.addEventListener("MozMagnifyGesture", this, true);
@ -1238,6 +1239,24 @@ GestureModule.prototype = {
try {
let consume = false;
switch (aEvent.type) {
case "MozSwipeGesture":
let gesture = Ci.nsIDOMSimpleGestureEvent;
switch (aEvent.direction) {
case gesture.DIRECTION_UP:
Browser.scrollContentToTop();
break;
case gesture.DIRECTION_DOWN:
Browser.scrollContentToBottom();
break;
case gesture.DIRECTION_LEFT:
CommandUpdater.doCommand("cmd_back");
break;
case gesture.DIRECTION_RIGHT:
CommandUpdater.doCommand("cmd_forward");
break;
}
break;
case "MozMagnifyGestureStart":
consume = true;
this._pinchStart(aEvent);

Просмотреть файл

@ -673,6 +673,18 @@ var Browser = {
this._browserView.onAfterVisibleMove();
},
// cmd_scrollBottom does not work in Fennec (Bug 590535).
scrollContentToBottom: function scrollContentToTop() {
let x = {}, y = {};
this.contentScrollboxScroller.getScrolledSize(x, y);
this.contentScrollboxScroller.scrollTo(0, y.value);
this.pageScrollboxScroller.getScrolledSize(x, y);
this.pageScrollboxScroller.scrollTo(0, y.value);
this._browserView.onAfterVisibleMove();
},
/** Let current browser's scrollbox know about where content has been panned. */
scrollBrowserToContent: function scrollBrowserToContent() {
let browser = this.selectedBrowser;