From 620cebb79ca9c70761ecdde58b7906a804a43586 Mon Sep 17 00:00:00 2001 From: euzuro Date: Wed, 2 Aug 2006 16:08:09 +0000 Subject: [PATCH] add a 'changelayer' event that fires when a layer's visibility changes. listen for this in the layerswitcher git-svn-id: http://svn.openlayers.org/trunk/openlayers@1050 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Control/LayerSwitcher.js | 1 + lib/OpenLayers/Layer.js | 15 ++++++++++----- lib/OpenLayers/Map.js | 4 ++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/OpenLayers/Control/LayerSwitcher.js b/lib/OpenLayers/Control/LayerSwitcher.js index 0327639788..8ad77ff677 100644 --- a/lib/OpenLayers/Control/LayerSwitcher.js +++ b/lib/OpenLayers/Control/LayerSwitcher.js @@ -67,6 +67,7 @@ OpenLayers.Control.LayerSwitcher.prototype = this.map.events.register("addlayer", this, this.redraw); this.map.events.register("removelayer", this, this.redraw); + this.map.events.register("changelayer", this, this.redraw); return this.redraw(); }, diff --git a/lib/OpenLayers/Layer.js b/lib/OpenLayers/Layer.js index 7150822aa6..3559b1e008 100644 --- a/lib/OpenLayers/Layer.js +++ b/lib/OpenLayers/Layer.js @@ -168,11 +168,16 @@ OpenLayers.Layer.prototype = { * @param {bool} visible */ setVisibility: function(visible) { - this.div.style.display = (visible) ? "block" : "none"; - if ((visible) && (this.map != null)) { - var extent = this.map.getExtent(); - if (extent != null) { - this.moveTo(this.map.getExtent()); + if (visible != this.getVisibility()) { + this.div.style.display = (visible) ? "block" : "none"; + if (this.map != null) { + if (visible) { + var extent = this.map.getExtent(); + if (extent != null) { + this.moveTo(this.map.getExtent()); + } + } + this.map.events.triggerEvent("changelayer"); } } }, diff --git a/lib/OpenLayers/Map.js b/lib/OpenLayers/Map.js index f4697ea139..021b6b608b 100644 --- a/lib/OpenLayers/Map.js +++ b/lib/OpenLayers/Map.js @@ -22,8 +22,8 @@ OpenLayers.Map.prototype = { * * @type Array */ EVENT_TYPES: [ - "addlayer", "removelayer", "movestart", "move", "moveend", - "zoomend", "layerchanged", "popupopen", "popupclose", + "addlayer", "removelayer", "changelayer", "movestart", "move", + "moveend", "zoomend", "layerchanged", "popupopen", "popupclose", "addmarker", "removemarker", "clearmarkers", "mouseover", "mouseout", "mousemove", "dragstart", "drag", "dragend", "changebaselayer"],