Provide a method to get the most recent down type event

This will allow interactions to conditionally handle later events based on the down event.
This commit is contained in:
Tim Schaub
2013-11-07 11:21:01 -07:00
parent 812cb7fb12
commit 22fb418236
2 changed files with 43 additions and 0 deletions

View File

@@ -185,6 +185,17 @@ ol.MapBrowserEventHandler = function(map) {
goog.inherits(ol.MapBrowserEventHandler, goog.events.EventTarget);
/**
* Get the last "down" type event. This will be set on mousedown,
* touchstart, and pointerdown.
* @return {goog.events.BrowserEvent} The most recent "down" type event (or null
* if none have occurred).
*/
ol.MapBrowserEventHandler.prototype.getDown = function() {
return this.down_;
};
/**
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @private

View File

@@ -51,8 +51,40 @@ describe('ol.MapBrowserEventHandler', function() {
});
});
describe('#getDown()', function() {
var handler;
beforeEach(function() {
handler = new ol.MapBrowserEventHandler(new ol.Map({}));
});
it('returns null if no "down" type event has been handled', function() {
expect(handler.getDown()).to.be(null);
});
it('returns an event after handleMouseDown_ has been called', function() {
var event = new goog.events.BrowserEvent({});
handler.handleMouseDown_(event);
expect(handler.getDown()).to.be(event);
});
it('returns an event after handlePointerDown_ has been called', function() {
var event = new goog.events.BrowserEvent({});
handler.handlePointerDown_(event);
expect(handler.getDown()).to.be(event);
});
it('returns an event after handleTouchStart_ has been called', function() {
var event = new goog.events.BrowserEvent({});
handler.handleTouchStart_(event);
expect(handler.getDown()).to.be(event);
});
});
});
goog.require('goog.events');
goog.require('goog.events.BrowserEvent');
goog.require('ol.Map');
goog.require('ol.MapBrowserEventHandler');