From 4e4b979204108cd8064fce58e26c66b1ada3d332 Mon Sep 17 00:00:00 2001 From: Max Lynch Date: Mon, 26 Aug 2013 19:44:10 -0500 Subject: [PATCH] Swipe me yo\! --- example/events.html | 8 ++++++-- example/events.js | 2 -- js/framework/framework-events.js | 3 ++- js/framework/framework-gestures.js | 31 +++++++++--------------------- 4 files changed, 17 insertions(+), 27 deletions(-) diff --git a/example/events.html b/example/events.html index 5a7cea7279..b7a6291375 100644 --- a/example/events.html +++ b/example/events.html @@ -7,8 +7,12 @@ - +
diff --git a/example/events.js b/example/events.js index 586678b12e..a0a0ca324f 100644 --- a/example/events.js +++ b/example/events.js @@ -32,8 +32,6 @@ window.FM.on('swipe', function(e) { type: 'swipe', event: e }); - - e.target.classList.add('swipeleft'); }); window.FM.on('swiperight', function(e) { console.log('GOT SWIPE RIGHT', e); diff --git a/js/framework/framework-events.js b/js/framework/framework-events.js index 09f335acd4..f74e8ef6b4 100644 --- a/js/framework/framework-events.js +++ b/js/framework/framework-events.js @@ -21,8 +21,9 @@ */ trigger: function(eventType, data) { // TODO: Do we need to use the old-school createEvent stuff? + var event = new CustomEvent(eventType, data); - window.dispatchEvent(new CustomEvent(eventType, data)); + data.target && data.target.dispatchEvent(event) || window.dispatchEvent(event); }, /** diff --git a/js/framework/framework-gestures.js b/js/framework/framework-gestures.js index b56b04cdd3..680b20e84a 100644 --- a/js/framework/framework-gestures.js +++ b/js/framework/framework-gestures.js @@ -12,10 +12,7 @@ framework.Gesture.Touch = { handle: function(e) { if(e.type == 'touchstart') { - framework.EventController.trigger('touch', { - cancelable: true, - bubbles: true - }); + framework.GestureController.triggerGestureEvent('touch', e); } } }; @@ -45,10 +42,7 @@ break; case 'touchend': if(this._hasMoved == false) { - framework.EventController.trigger('tap', { - cancelable: true, - bubbles: true - }); + framework.GestureController.triggerGestureEvent('tap', e); } break; } @@ -59,10 +53,7 @@ framework.Gesture.Release = { handle: function(e) { if(e.type === 'touchend') { - framework.EventController.trigger('release', { - cancelable: true, - bubbles: true - }); + framework.GestureController.triggerGestureEvent('release', e); } } }; @@ -78,16 +69,8 @@ // trigger swipe events, both a general swipe, // and a directional swipe - framework.EventController.trigger('swipe', { - gesture: e, - cancelable: true, - bubbles: true - }); - framework.EventController.trigger('swipe' + e.direction, { - gesture: e, - cancelable: true, - bubbles: true - }); + framework.GestureController.triggerGestureEvent('swipe', e); + framework.GestureController.triggerGestureEvent('swipe' + e.direction, e); } } } @@ -102,6 +85,10 @@ framework.Gesture.Release, ], + triggerGestureEvent: function(type, e) { + framework.EventController.trigger(type, framework.Utils.extend({}, e)); + }, + _annotateGestureEvent: function(e) { // If this doesn't have touches, we need to grab the last set that did var touches = e.touches;