ThinkGeo.com    |     Documentation    |     Premium Support

Arrow keys and focus?

Hi,


I've enabled using the arrow keys to pan the map viewport, but it triggers regardless of whether it or some other html control has focus. E.g. when moving a selection in a radio group, the map also pans right or left.


Is this an issue with MapSuite or in Open Layers ?


 



Hi Lars,


We have recreated the issue you mentioned in this post, and I’m afraid that is an issue of OpenLayers. Our KeyboardMapTool is just a wrapper of a control called KeyboardDefaults in OpenLayers, and OpenLayers registers the keyboard events to the document object, so the KeyboardDefaults control still takes effect even the map control losses focus. 
To work around this problem, we could stop the event bubble when the map losses focus so that the keyboard events of document object will not be triggered. Another option is removing the KeyboardDefaults control from the map when is losses focus, and then add the KeyboardDefaults control back when the map has focus.
Sorry for the inconvenience and any more questions please let me know.
Thanks,
Sun

Hi,


Although this is an old post, I'm providing the solution that worked for us in case its of use to anyone else.


To workaround the issue of the map keyboard nav keys operating when not required we disabled the keyboard nav at client side whenever the mouse was outside of the map. [In our case we enabled keyboard nav on the map at server side initially.]


function OnMapCreated(Map1) {

    var keyboardControl = Map1.getControlsByClass('OpenLayers.Control.KeyboardDefaults');

 


// Deactivate initially at client side


    keyboardControl[0].deactivate();


    Map1.events.register('mouseover', Map1, function (evt) {

        keyboardControl[0].activate();

    });


    Map1.events.register('mouseout', Map1, function (evt) {

        keyboardControl[0].deactivate();

    });

}

 


 


Liam



Liam, 



Thanks for your workaround about this! 



I think that's relly helpful for some other guys who have the same problem. 



Regards, 



Don