Adding events to map while dragging in the zoombar, then removing them afterwards. This neccessitated adding a 'remove' to Events, to pop events off the end. No more problems with dragging off into the map accidentally.

git-svn-id: http://svn.openlayers.org/trunk/openlayers@388 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
crschmidt
2006-05-26 02:17:43 +00:00
parent ae5ff749da
commit 1f89f13fb5
2 changed files with 14 additions and 0 deletions

View File

@@ -109,11 +109,19 @@ OpenLayers.Control.PanZoomBar.prototype =
Event.stop(evt);
},
zoomBarDown:function(evt) {
this.map.events.register("mousemove", this, this.mapMouseDrag);
this.map.events.register("mouseup", this, this.mapMouseUp);
this.mouseDragStart = evt.xy.copyOf();
this.zoomStart = evt.xy.copyOf();
this.div.style.cursor = "move";
Event.stop(evt);
},
mapMouseDrag:function(evt) {
this.sliderEvents.handleBrowserEvent(evt);
},
mapMouseUp:function(evt) {
this.sliderEvents.handleBrowserEvent(evt);
},
zoomBarDivDrag: function(evt) {
this.sliderEvents.handleBrowserEvent(evt);
},
@@ -127,6 +135,8 @@ OpenLayers.Control.PanZoomBar.prototype =
},
zoomBarUp:function(evt) {
this.div.style.cursor="default";
this.map.events.remove("mousemove");
this.map.events.remove("mouseup");
var deltaY = this.zoomStart.y - evt.xy.y
this.map.zoomTo(this.map.zoom + Math.round(deltaY/this.zoomStopHeight));
this.moveZoomBar();

View File

@@ -60,6 +60,10 @@ OpenLayers.Events.prototype = {
listeners.push( func.bindAsEventListener(obj) );
},
remove: function(type) {
this.listeners[type].pop();
},
/**
* @param {event} evt
*/