Make it so the measurepartial event is triggered only if measure isn't coming soon. This keeps you from having to do a quadruple click to finish in IE when a reflow is triggered by the measurepartial listener. r=crschmidt (closes #2037)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@9263 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -75,6 +75,23 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
|
||||
english: ['mi', 'ft', 'in'],
|
||||
metric: ['km', 'm']
|
||||
},
|
||||
|
||||
/**
|
||||
* Property: delay
|
||||
* {Number} Number of milliseconds between clicks before the event is
|
||||
* considered a double-click. The "measurepartial" event will not
|
||||
* be triggered if the sketch is completed within this time. This
|
||||
* is required for IE where creating a browser reflow (if a listener
|
||||
* is modifying the DOM by displaying the measurement values) messes
|
||||
* with the dblclick listener in the sketch handler.
|
||||
*/
|
||||
partialDelay: 300,
|
||||
|
||||
/**
|
||||
* Property: delayedTrigger
|
||||
* {Number} Timeout id of trigger for measurepartial.
|
||||
*/
|
||||
delayedTrigger: null,
|
||||
|
||||
/**
|
||||
* APIProperty: persist
|
||||
@@ -147,6 +164,9 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
|
||||
* geometry - {<OpenLayers.Geometry>}
|
||||
*/
|
||||
measureComplete: function(geometry) {
|
||||
if(this.delayedTrigger) {
|
||||
window.clearTimeout(this.delayedTrigger);
|
||||
}
|
||||
this.measure(geometry, "measure");
|
||||
},
|
||||
|
||||
@@ -159,7 +179,12 @@ OpenLayers.Control.Measure = OpenLayers.Class(OpenLayers.Control, {
|
||||
* geometry - {<OpenLayers.Geometry>} The sketch geometry.
|
||||
*/
|
||||
measurePartial: function(point, geometry) {
|
||||
this.measure(geometry, "measurepartial");
|
||||
this.delayedTrigger = window.setTimeout(
|
||||
OpenLayers.Function.bind(function() {
|
||||
this.measure(geometry, "measurepartial");
|
||||
}, this),
|
||||
this.partialDelay
|
||||
);
|
||||
},
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user