diff --git a/lib/OpenLayers/Handler/Point.js b/lib/OpenLayers/Handler/Point.js index 1efe3a413f..a6967f6a8b 100644 --- a/lib/OpenLayers/Handler/Point.js +++ b/lib/OpenLayers/Handler/Point.js @@ -172,9 +172,26 @@ OpenLayers.Handler.Point = OpenLayers.Class(OpenLayers.Handler, { this.lastUp = null; }, + /** + * Method: click + * Handle clicks. Clicks are stopped from propagating to other listeners + * on map.events or other dom elements. + * + * Parameters: + * evt - {Event} The browser event + * + * Returns: + * {Boolean} Allow event propagation + */ + click: function(evt) { + OpenLayers.Event.stop(evt); + return false; + }, + /** * Method: dblclick - * Handle double clicks. + * Handle double-clicks. Double-clicks are stopped from propagating to other + * listeners on map.events or other dom elements. * * Parameters: * evt - {Event} The browser event diff --git a/tests/Handler/test_Point.html b/tests/Handler/test_Point.html index 57e9972b5f..6c3a7477a4 100644 --- a/tests/Handler/test_Point.html +++ b/tests/Handler/test_Point.html @@ -1,48 +1,104 @@ - -
- - + - - - - - + } + + function test_Handler_Point_bounds(t) { + t.plan(4); + var map = new OpenLayers.Map('map'); + map.addLayer(new OpenLayers.Layer.WMS("", "", {})); + map.zoomToMaxExtent(); + var control = new OpenLayers.Control(); + map.addControl(control); + var handler = new OpenLayers.Handler.Point(control); + var activated = handler.activate(); + var px = new OpenLayers.Pixel(150, 75); + var evt = {xy: px, which: 1}; + handler.mousedown(evt); + var lonlat = map.getLonLatFromPixel(px); + t.eq(handler.point.geometry.x, lonlat.lon, "X is correct"); + t.eq(handler.point.geometry.y, lonlat.lat, "Y is correct"); + t.ok(handler.point.geometry.getBounds().equals(new OpenLayers.Bounds(lonlat.lon,lonlat.lat,lonlat.lon,lonlat.lat)), "Correct bounds"); + var evt = {xy: new OpenLayers.Pixel(175, 100), which: 1}; + handler.mousemove(evt); + t.ok(!handler.point.geometry.getBounds().equals(new OpenLayers.Bounds(0,0,0,0)), "Bounds changed after moving mouse"); + } + + function test_Handler_Point_destroy(t) { + t.plan(4); + var map = new OpenLayers.Map('map'); + map.addLayer(new OpenLayers.Layer.WMS("", "", {})); + map.zoomToMaxExtent(); + var control = new OpenLayers.Control(); + map.addControl(control); + var handler = new OpenLayers.Handler.Point(control, {foo: 'bar'}); + + handler.activate(); + var evt = {xy: new OpenLayers.Pixel(150, 75), which: 1}; + handler.mousedown(evt); + + t.ok(handler.layer, + "handler has a layer prior to destroy"); + t.ok(handler.point, + "handler has a point prior to destroy"); + handler.destroy(); + t.eq(handler.layer, null, + "handler.layer is null after destroy"); + t.eq(handler.point, null, + "handler.point is null after destroy"); + } + + + + + + + + +