fixing scroll position issue on the IPhone by only clearing the mouse cache conditionally. r=erilem (closes #3132)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@11706 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
ahocevar
2011-03-16 02:52:43 +00:00
parent 9315972bb0
commit 09bcb46a03

View File

@@ -854,7 +854,18 @@ OpenLayers.Events = OpenLayers.Class({
clearMouseCache: function() {
this.element.scrolls = null;
this.element.lefttop = null;
this.element.offsets = null;
// OpenLayers.Util.pagePosition needs to use
// element.getBoundingClientRect to correctly calculate the offsets
// for the iPhone, but once the page is scrolled, getBoundingClientRect
// returns incorrect offsets. So our best bet is to not invalidate the
// offsets once we have them, and hope that the page was not scrolled
// when we did the initial calculation.
if (!((document.body.scrollTop != 0 ||
document.body.scrollLeft != 0) &&
navigator.userAgent.match(/iPhone/i))) {
OpenLayers.Console.log("clear");
this.element.offsets = null;
}
},
/**