mirror of
https://github.com/Leaflet/Path.Drag.js.git
synced 2025-07-23 02:55:32 +00:00
Reset bounds on drag end (fix #Leaflet/Leaflet.Editable#86)
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "leaflet.path.drag",
|
||||
"version": "0.0.2",
|
||||
"version": "0.0.3",
|
||||
"description": "Allow to drag Leaflet path",
|
||||
"main": "src/Path.Drag.js",
|
||||
"scripts": {
|
||||
@ -25,7 +25,7 @@
|
||||
"homepage": "https://github.com/Leaflet/Path.Drag.js#readme",
|
||||
"devDependencies": {
|
||||
"chai": "^3.5.0",
|
||||
"leaflet": "^1.0.0-rc.1",
|
||||
"leaflet": "^1.0.0-rc.2",
|
||||
"mocha": "^2.5.3",
|
||||
"mocha-phantomjs-core": "^1.3.1",
|
||||
"phantomjs-prebuilt": "^2.1.7",
|
||||
|
@ -82,6 +82,7 @@ L.Handler.PathDrag = L.Handler.extend({
|
||||
},
|
||||
|
||||
_onDragEnd: function (e) {
|
||||
if (this._path._bounds) this.resetBounds();
|
||||
this._path.fire('moveend')
|
||||
.fire('dragend', e);
|
||||
},
|
||||
@ -98,6 +99,13 @@ L.Handler.PathDrag = L.Handler.extend({
|
||||
var newLatLng = this._path._map.layerPointToLatLng(oldPoint);
|
||||
latlng.lat = newLatLng.lat;
|
||||
latlng.lng = newLatLng.lng;
|
||||
},
|
||||
|
||||
resetBounds: function () {
|
||||
this._path._bounds = new L.LatLngBounds();
|
||||
this._path.eachLatLng(function (latlng) {
|
||||
this._bounds.extend(latlng);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
@ -53,6 +53,21 @@ describe('L.Handler.PathDrag', function () {
|
||||
});
|
||||
});
|
||||
|
||||
it('should update bounds of a polyline', function (done) {
|
||||
var latlngs = [p2ll(100, 100), p2ll(100, 200)];
|
||||
layer = L.polyline(latlngs).addTo(this.map);
|
||||
layer.dragging.enable();
|
||||
var oldLat = layer._bounds._southWest.lat;
|
||||
drag(100, 130, 20, 20, function () {
|
||||
// Prosthetic-hand run the onStop before the
|
||||
// dragend if sent.
|
||||
window.setTimeout(function () {
|
||||
assert.notEqual(oldLat, layer._bounds._southWest.lat);
|
||||
done();
|
||||
}, 10);
|
||||
});
|
||||
});
|
||||
|
||||
it('should drag a multipolyline', function (done) {
|
||||
var latlngs = [
|
||||
[p2ll(100, 100), p2ll(100, 200)],
|
||||
@ -98,6 +113,21 @@ describe('L.Handler.PathDrag', function () {
|
||||
});
|
||||
});
|
||||
|
||||
it('should update bounds of a polygon', function (done) {
|
||||
var latlngs = [[p2ll(100, 150), p2ll(150, 200), p2ll(200, 100)]];
|
||||
layer = L.polygon(latlngs).addTo(this.map);
|
||||
layer.dragging.enable();
|
||||
var oldLat = layer._bounds._southWest.lat;
|
||||
drag(150, 150, 20, 20, function () {
|
||||
// Prosthetic-hand run the onStop before the
|
||||
// dragend if sent.
|
||||
window.setTimeout(function () {
|
||||
assert.notEqual(oldLat, layer._bounds._southWest.lat);
|
||||
done();
|
||||
}, 10);
|
||||
});
|
||||
});
|
||||
|
||||
it('should drag a rectangle', function (done) {
|
||||
var latlngs = [p2ll(100, 100), p2ll(200, 200)];
|
||||
layer = L.rectangle(latlngs).addTo(this.map);
|
||||
@ -110,6 +140,21 @@ describe('L.Handler.PathDrag', function () {
|
||||
});
|
||||
});
|
||||
|
||||
it('should update bounds of a rectangle', function (done) {
|
||||
var latlngs = [p2ll(100, 100), p2ll(200, 200)];
|
||||
layer = L.rectangle(latlngs).addTo(this.map);
|
||||
layer.dragging.enable();
|
||||
var oldLat = layer._bounds._southWest.lat;
|
||||
drag(100, 130, 20, 20, function () {
|
||||
// Prosthetic-hand run the onStop before the
|
||||
// dragend if sent.
|
||||
window.setTimeout(function () {
|
||||
assert.notEqual(oldLat, layer._bounds._southWest.lat);
|
||||
done();
|
||||
}, 10);
|
||||
});
|
||||
});
|
||||
|
||||
it('should drag a circle', function (done) {
|
||||
layer = L.circle(p2ll(200, 200), {radius: 50}).addTo(this.map);
|
||||
var before = layer._latlng.lat;
|
||||
@ -125,7 +170,7 @@ describe('L.Handler.PathDrag', function () {
|
||||
var latlngs = [p2ll(100, 100), p2ll(100, 200)],
|
||||
called = 0,
|
||||
call = function () {called++;};
|
||||
layer = L.polyline(latlngs).addTo(this.map),
|
||||
layer = L.polyline(latlngs).addTo(this.map);
|
||||
layer.on('dragstart', call);
|
||||
layer.dragging.enable();
|
||||
assert.equal(called, 0);
|
||||
@ -139,7 +184,7 @@ describe('L.Handler.PathDrag', function () {
|
||||
var latlngs = [p2ll(100, 100), p2ll(100, 200)],
|
||||
called = 0,
|
||||
call = function () {called++;};
|
||||
layer = L.polyline(latlngs).addTo(this.map),
|
||||
layer = L.polyline(latlngs).addTo(this.map);
|
||||
layer.on('dragend', call);
|
||||
layer.dragging.enable();
|
||||
assert.equal(called, 0);
|
||||
@ -157,7 +202,7 @@ describe('L.Handler.PathDrag', function () {
|
||||
var latlngs = [p2ll(100, 100), p2ll(100, 200)],
|
||||
called = 0,
|
||||
call = function () {called++;};
|
||||
layer = L.polyline(latlngs).addTo(this.map),
|
||||
layer = L.polyline(latlngs).addTo(this.map);
|
||||
layer.on('drag', call);
|
||||
layer.dragging.enable();
|
||||
assert.notOk(called);
|
||||
|
Reference in New Issue
Block a user