Merge pull request #4002 from fredj/closure-library
Update closure-library to latest commit
This commit is contained in:
+1
-1
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"library_url": "https://github.com/google/closure-library/archive/0011afd534469ba111786fe68300a634e08a4d80.zip"
|
"library_url": "https://github.com/google/closure-library/archive/a5f9b8a.zip"
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-16
@@ -692,22 +692,8 @@ ol.Map.prototype.getEventCoordinate = function(event) {
|
|||||||
* @api stable
|
* @api stable
|
||||||
*/
|
*/
|
||||||
ol.Map.prototype.getEventPixel = function(event) {
|
ol.Map.prototype.getEventPixel = function(event) {
|
||||||
// goog.style.getRelativePosition is based on event.targetTouches,
|
var eventPosition = goog.style.getRelativePosition(event, this.viewport_);
|
||||||
// but touchend and touchcancel events have no targetTouches when
|
return [eventPosition.x, eventPosition.y];
|
||||||
// the last finger is removed from the screen.
|
|
||||||
// So we ourselves compute the position of touch events.
|
|
||||||
// See https://github.com/google/closure-library/pull/323
|
|
||||||
if (goog.isDef(event.changedTouches)) {
|
|
||||||
var touch = event.changedTouches[0];
|
|
||||||
var viewportPosition = goog.style.getClientPosition(this.viewport_);
|
|
||||||
return [
|
|
||||||
touch.clientX - viewportPosition.x,
|
|
||||||
touch.clientY - viewportPosition.y
|
|
||||||
];
|
|
||||||
} else {
|
|
||||||
var eventPosition = goog.style.getRelativePosition(event, this.viewport_);
|
|
||||||
return [eventPosition.x, eventPosition.y];
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -271,12 +271,54 @@ describe('ol.Map', function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('#getEventPixel', function() {
|
||||||
|
|
||||||
|
var target;
|
||||||
|
|
||||||
|
beforeEach(function() {
|
||||||
|
target = document.createElement('div');
|
||||||
|
target.style.position = 'absolute';
|
||||||
|
target.style.top = '10px';
|
||||||
|
target.style.left = '20px';
|
||||||
|
target.style.width = '800px';
|
||||||
|
target.style.height = '400px';
|
||||||
|
|
||||||
|
document.body.appendChild(target);
|
||||||
|
});
|
||||||
|
afterEach(function() {
|
||||||
|
document.body.removeChild(target);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('works with touchend events', function() {
|
||||||
|
|
||||||
|
var map = new ol.Map({
|
||||||
|
target: target
|
||||||
|
});
|
||||||
|
|
||||||
|
var browserEvent = new goog.events.BrowserEvent({
|
||||||
|
type: 'touchend',
|
||||||
|
target: target,
|
||||||
|
changedTouches: [{
|
||||||
|
clientX: 100,
|
||||||
|
clientY: 200
|
||||||
|
}]
|
||||||
|
});
|
||||||
|
var position = map.getEventPixel(browserEvent.getBrowserEvent());
|
||||||
|
// 80 = clientX - target.style.left
|
||||||
|
expect(position[0]).to.eql(80);
|
||||||
|
// 190 = clientY - target.style.top
|
||||||
|
expect(position[1]).to.eql(190);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
goog.require('goog.dispose');
|
goog.require('goog.dispose');
|
||||||
goog.require('goog.dom');
|
goog.require('goog.dom');
|
||||||
|
goog.require('goog.events.BrowserEvent');
|
||||||
goog.require('goog.events.EventType');
|
goog.require('goog.events.EventType');
|
||||||
goog.require('ol.Map');
|
goog.require('ol.Map');
|
||||||
goog.require('ol.MapEvent');
|
goog.require('ol.MapEvent');
|
||||||
|
|||||||
Reference in New Issue
Block a user