Hi,

I have a vector layer with two SelectFeature controls : one is used
for selection, the other is used to show a popup.
It works well except for one case : if I select an element in the
vector, then I move the mouse to this element, the
"featurehighlighted" event is fired, but on mouse out the
"featureunhighlighted" event is not fired !

Here is the piece of code to create the layer :

layer = new OpenLayers.Layer.Vector(
        "Rejets",
        {
                styleMap: styles,
                displayInLayerSwitcher : false,
                rendererOptions: {
                    zIndexing: true
                }
        });
map.addLayer(layer);

Here is the control for selection :

var selectControl = new OpenLayers.Control.SelectFeature(
        layer,
        {
                multiple: true
                , hover: false
                , toggle: true
                , onSelect : function(feature) {
                        var rejet = feature.rejet;
                        if (rejet != null) {
                                if (! rejet.selected) {
                                        feature.selected = true;
                                        rejet.select();
                                }
                        }
                }
                , onUnselect : function(feature) {
                        var rejet = feature.rejet;
                        rejet.hideTooltip();
                        if (rejet != null && rejet.selected) {
                                feature.selected = false;
                                rejet.unselect();
                        }
                }
        });
selectControl.id = "selectRejets";

Here is the control to display popup :

var highlightControl = new OpenLayers.Control.SelectFeature(
        layer,
        {
                multiple: false
                , hover: true
                , highlightOnly: true
                , eventListeners: {
                        featurehighlighted : function(e) {
                                var rejet = e.feature.rejet;
                                if (rejet != null) {
                                        rejet.showTooltip();
                                }
                        }
                        , featureunhighlighted : function(e) {
                                var rejet = e.feature.rejet;
                                if (rejet != null) {
                                        rejet.hideTooltip();
                                }
                        }
                }
        });
highlightControl.id = "highlightRejets";

And the two controls are activated this way (order has influence on behaviour) :

map.addControl(highlightControl);
map.addControl(selectControl);
highlightControl.activate();
selectControl.activate();

Any idea what I did wrong ? Or could it be a bug (if so, I absolutely
need a way to workaround this problem).

Thanks in advance,

Olivier
_______________________________________________
Users mailing list
Users@openlayers.org
http://openlayers.org/mailman/listinfo/users

Reply via email to