From e5641c76e0ad3fcb964d5e6ccaa23297a5f44019 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Wed, 29 Aug 2007 17:37:42 +0000 Subject: [PATCH] Fix deactivate and destroy methods on the keyboard handler. Add 28 tests for previously untested handler. Thanks to Erik for the quick review and comments - appreciated as always (closes #943). git-svn-id: http://svn.openlayers.org/trunk/openlayers@4108 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf --- lib/OpenLayers/Handler/Keyboard.js | 12 ++-- tests/Handler/test_Keyboard.html | 106 +++++++++++++++++++++++++++++ tests/list-tests.html | 1 + 3 files changed, 113 insertions(+), 6 deletions(-) create mode 100644 tests/Handler/test_Keyboard.html 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