use goog.bind, safari does not support the native bind

This commit is contained in:
tsauerwein
2014-02-04 09:58:19 +01:00
parent 492549642e
commit 37ab50e2e4
2 changed files with 6 additions and 5 deletions

View File

@@ -68,6 +68,7 @@ ol.pointer.PointerEventHandler = function(element) {
*/
this.pointerMap = new goog.structs.Map();
/**
* @const
* @type {ol.structs.WeakMap}
@@ -87,7 +88,7 @@ ol.pointer.PointerEventHandler = function(element) {
this.eventSources = {};
this.eventSourceList = [];
this.boundHandler_ = this.eventHandler_.bind(this);
this.boundHandler_ = goog.bind(this.eventHandler_, this);
this.registerSources();
};
@@ -167,7 +168,7 @@ ol.pointer.PointerEventHandler.prototype.registerSource =
var handler = s.getHandlerForEvent(e);
if (handler) {
this.eventMap[e] = handler.bind(s);
this.eventMap[e] = goog.bind(handler, s);
}
}, this);
this.eventSources[name] = s;

View File

@@ -128,7 +128,7 @@ ol.pointer.TouchSource.prototype.resetClickCount_ = function() {
this.clickCount = 0;
this.resetId = null;
};
this.resetId = setTimeout(fn.bind(this), this.CLICK_COUNT_TIMEOUT);
this.resetId = setTimeout(goog.bind(fn, this), this.CLICK_COUNT_TIMEOUT);
};
@@ -397,12 +397,12 @@ ol.pointer.TouchSource.prototype.dedupSynthMouse_ = function(inEvent) {
// remember x/y of last touch
var lt = {x: t.clientX, y: t.clientY};
lts.push(lt);
var fn = (function(lts, lt) {
var fn = goog.bind(function(lts, lt) {
var i = lts.indexOf(lt);
if (i > -1) {
lts.splice(i, 1);
}
}).bind(null, lts, lt);
}, null, lts, lt);
setTimeout(fn, this.DEDUP_TIMEOUT);
}
};