Issue #2619 fixed. Now Map.js/_fireMouseEvent checks dragging.moved() on moved object instead on map

This commit is contained in:
AndreyGeonya 2014-08-05 00:09:01 +03:00
parent b537c8b39c
commit fd7ebcb5aa
3 changed files with 58 additions and 4 deletions

57
debug/map/markers.html Normal file
View File

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html>
<head>
<title>Leaflet debug page</title>
<link rel="stylesheet" href="../../dist/leaflet.css" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../css/screen.css" />
<script type="text/javascript" src="../../build/deps.js"></script>
<script src="../leaflet-include.js"></script>
</head>
<body>
<div id="map"></div>
<script type="text/javascript">
map = L.map('map', { center: [0, 0], zoom: 3, maxZoom: 4 });
L.Icon.Default.imagePath = 'http://cdn.leafletjs.com/leaflet-0.7.3/images';
var markerStatic = new L.Marker([0, -10], {
draggable: false,
title: 'Static'
});
map.addLayer(markerStatic);
markerStatic.bindPopup("Static");
var markerDraggable = new L.Marker([0, 10], {
draggable: true,
title: 'Draggable'
});
map.addLayer(markerDraggable);
markerDraggable.bindPopup("Draggable");
markerDraggable.on('click', function(e) {
console.log('markerDraggable click');
});
map.on('click', function(e) {
console.log('map click');
});
L.tileLayer('http://{s}.mqcdn.com/tiles/1.0.0/map/{z}/{x}/{y}.png', {
attribution: "Map: Tiles Courtesy of MapQuest (OpenStreetMap, CC-BY-SA)",
subdomains: ["otile1","otile2","otile3","otile4"],
maxZoom: 12,
minZoom: 2
}).addTo(map);
</script>
</body>
</html>

View File

@ -227,8 +227,6 @@ L.Marker = L.Layer.extend({
L.DomEvent.preventDefault(e);
}
if (e.type === 'click' && this.dragging && this.dragging.moved()) { return; }
if (e.type === 'keypress' && e.keyCode === 13) {
type = 'click';
}

View File

@ -566,9 +566,8 @@ L.Map = L.Evented.extend({
type = type || e.type;
if (L.DomEvent._skipped(e)) { return; }
if (type === 'click') {
if (!e._simulated && ((this.dragging && this.dragging.moved()) ||
if (!e._simulated && ((obj.dragging && obj.dragging.moved()) ||
(this.boxZoom && this.boxZoom.moved()))) { return; }
obj.fire('preclick');
}