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:
@@ -185,6 +185,17 @@ ol.MapBrowserEventHandler = function(map) {
|
|||||||
goog.inherits(ol.MapBrowserEventHandler, goog.events.EventTarget);
|
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.
|
* @param {goog.events.BrowserEvent} browserEvent Browser event.
|
||||||
* @private
|
* @private
|
||||||
|
|||||||
@@ -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');
|
||||||
|
goog.require('goog.events.BrowserEvent');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.MapBrowserEventHandler');
|
goog.require('ol.MapBrowserEventHandler');
|
||||||
|
|||||||
Reference in New Issue
Block a user