diff --git a/lib/OpenLayers/Handler/Keyboard.js b/lib/OpenLayers/Handler/Keyboard.js index a10baa1c10..51cf41b573 100644 --- a/lib/OpenLayers/Handler/Keyboard.js +++ b/lib/OpenLayers/Handler/Keyboard.js @@ -46,7 +46,7 @@ OpenLayers.Handler.Keyboard = OpenLayers.Class(OpenLayers.Handler, { * options - {Object} Optional object whose properties will be set on the * handler. */ - initialize: function () { + initialize: function(control, callbacks, options) { OpenLayers.Handler.prototype.initialize.apply(this, arguments); // cache the bound event listener method so it can be unobserved later this.eventListener = this.handleKeyEvent.bindAsEventListener(this); @@ -58,7 +58,7 @@ OpenLayers.Handler.Keyboard = OpenLayers.Class(OpenLayers.Handler, { destroy: function() { this.deactivate(); this.eventListener = null; - OpenLayers.Control.prototype.destroy.apply(this, arguments); + OpenLayers.Handler.prototype.destroy.apply(this, arguments); }, /** @@ -80,15 +80,15 @@ OpenLayers.Handler.Keyboard = OpenLayers.Class(OpenLayers.Handler, { * Method: deactivate */ deactivate: function() { + var deactivated = false; if (OpenLayers.Handler.prototype.deactivate.apply(this, arguments)) { for (var i = 0; i < this.KEY_EVENTS.length; i++) { OpenLayers.Event.stopObserving( - document, this.KEY_EVENTS[i], this.eventListener); + window, this.KEY_EVENTS[i], this.eventListener); } - return true; - } else { - return false; + deactivated = true; } + return deactivated; }, /** diff --git a/tests/Handler/test_Keyboard.html b/tests/Handler/test_Keyboard.html new file mode 100644 index 0000000000..9589ef485a --- /dev/null +++ b/tests/Handler/test_Keyboard.html @@ -0,0 +1,106 @@ + + + + + + +
+ + diff --git a/tests/list-tests.html b/tests/list-tests.html index 4f436c99bd..c558dda39c 100644 --- a/tests/list-tests.html +++ b/tests/list-tests.html @@ -72,6 +72,7 @@
  • Control/test_Scale.html
  • test_Handler.html
  • Handler/test_MouseWheel.html
  • +
  • Handler/test_Keyboard.html
  • Handler/test_Drag.html
  • Handler/test_Point.html
  • Handler/test_Path.html