diff --git a/.travis.yml b/.travis.yml
index 20fd86b6..db828c83 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,3 +1,27 @@
+---
language: node_js
node_js:
- - 0.10
+- "0.10"
+env:
+ global:
+ - "ARTIFACTS_S3_BUCKET=leaflet-cdn"
+ - secure: |-
+ LnvY/vWpmAIObabLrpu1mWYw1udllVpZJrrhzsn3traL+qU6yaGniQOn6u+l
+ iWSCuu7kXX3xv1GD7Fc6lTfQCg9F9dukWv9zlc4gFciyRpiUBuluuqtdV51A
+ 5yqpLkMpX2PMG7vwrOYttVW0uDlUcwGjyHxWZvnBOXCnnHSpnbI=
+ - secure: |-
+ EQ4c2c8VklzFZRxKnizI0/VK0anHhlyc1Rv0vqkMj/YPKxmbWNfOlsOCN2gM
+ p+q8QzCG1Np9D1Kq9K0miYqHgZxgu4D/4Mwy04bh1UfyoUcDfB1tJmEtsKY/
+ 8Bl46ZfhxbTG39b6Y315GuU+49QdFMEXhSqx/G7on1xC4aYLXLc=
+before_script: >
+ test ${TRAVIS_BRANCH} = master ||
+ test ${TRAVIS_BRANCH} = stable &&
+ test ${TRAVIS_PULL_REQUEST} = false &&
+ gem install travis-artifacts || true
+after_success: >
+ test ${TRAVIS_BRANCH} = master ||
+ test ${TRAVIS_BRANCH} = stable &&
+ test ${TRAVIS_PULL_REQUEST} = false &&
+ travis-artifacts upload --path dist --target-path build/${TRAVIS_BRANCH} &&
+ cd dist && zip -x .DS_Store -r leaflet-${TRAVIS_BRANCH}.zip . &&
+ travis-artifacts upload --path leaflet-${TRAVIS_BRANCH}.zip --target-path build
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6bab1731..6b1f98e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,42 @@ Leaflet Changelog
## 0.7-dev (master)
-An in-progress version being developed on the master branch. No changes since latest stable release.
+An in-progress version being developed on the `master` branch. Includes all fixes from the `stable` branch.
+
+* Added `TileLayer` `maxNativeZoom` option that allows displaying tile layers on zoom levels above their maximum by **upscaling tiles**. [#1802](https://github.com/Leaflet/Leaflet/issues/1802) [#1798](https://github.com/Leaflet/Leaflet/issues/1798)
+
+## 0.6.3 (July 17, 2013)
+
+### Regression fixes
+
+* Fixed a regression where mouse interaction had incorrect coordinates in some map positioning cases (by [@scooterw](https://github.com/scooterw)). [#1826](https://github.com/Leaflet/Leaflet/issues/1826) [#1684](https://github.com/Leaflet/Leaflet/issues/1684) [#1745](https://github.com/Leaflet/Leaflet/issues/1745) [#1](https://github.com/Leaflet/Leaflet/issues/1)
+* Fixed a regression that prevented the map from responding to drag on areas covered with `ImageOverlay` (by [@jfirebaugh](https://github.com/jfirebaugh)). [#1821](https://github.com/Leaflet/Leaflet/issues/1821)
+* Fixed a regression where `layerremove` and `layeradd` were fired before the corresponding action finishes (by [@jfirebaugh](https://github.com/jfirebaugh)). [#1846](https://github.com/Leaflet/Leaflet/issues/1846)
+* Fixed a regression with `worldCopyJump: true` breaking the map on small zoom levels (by [@danzel](https://github.com/danzel)). [#1831](https://github.com/Leaflet/Leaflet/issues/1831)
+* Fixed a regression where `Marker` shadow didn't animate on zoom after using `setIcon`. [#1768](https://github.com/Leaflet/Leaflet/issues/1768)
+* Fixed a regression where the map would stuck when trying to animate zoom before any tile layers are added to the map. [#1484](https://github.com/Leaflet/Leaflet/issues/1484) [#1845](https://github.com/Leaflet/Leaflet/issues/1845)
+* Fixed a regression with the layers control and popups closing on inside click in IE < 9. [#1850](https://github.com/Leaflet/Leaflet/issues/1850)
+* Fixed a regression where scrolled popup content woudln't scroll in FF (by [@jfirebaugh](https://github.com/jfirebaugh)).
+
+### Bug fixes
+
+* Fixed vector feature flickering on Safari Mac for screen < 2000px. [#902](https://github.com/Leaflet/Leaflet/issues/902)
+* Fixed a bug where `GeoJSON` ignored non-feature geometries passed in an array. [#1840](https://github.com/Leaflet/Leaflet/issues/1840)
+* Fixed a bug where `Map` `minZoom` and `maxZoom` didn't always override values derived from the added tile layers. [1848](https://github.com/Leaflet/Leaflet/issues/1848)
+* Fixed a bug where `TileLayer.Canvas` wasn't immediately redrawn when `redraw` is called (by [@tofferrosen](https://github.com/tofferrosen)). [#1797](https://github.com/Leaflet/Leaflet/issues/1797) [#1817](https://github.com/Leaflet/Leaflet/issues/1817)
+* Fixed a bug where `FeatureGroup` still fired `layerremove` event on `removeLayer` even if the given layer wan't present in the group (by (by [@danzel](https://github.com/danzel))). [#1847](https://github.com/Leaflet/Leaflet/issues/1847) [#1858](https://github.com/Leaflet/Leaflet/issues/1858)
+* Fixed a bug where `Marker` `setOpacity` wasn't returning the marker (by [@freepius44](https://github.com/freepius44)). [#1851](https://github.com/Leaflet/Leaflet/issues/1851)
+* Fixed a bug where removing the map element from the DOM before panning transition has finished could keep a setInterval loop running forever (by [@rutkovsky](https://github.com/rutkovsky)). [#1825](https://github.com/Leaflet/Leaflet/issues/1825) [#1856](https://github.com/Leaflet/Leaflet/issues/1856)
+* Fixed mobile styles to apply to `leaflet-bar` elements.
+
+### Improvements
+
+* Added ability to pass zoom/pan animation options to `setMaxBounds` (by [@davidjb](http://git.io/djb)). [#1834](https://github.com/Leaflet/Leaflet/pull/1834)
+* Added `MultiPolyline` and `MultiPolygon` `getLatLngs` method. [#1839](https://github.com/Leaflet/Leaflet/issues/1839)
+
+### Dev Workflow improvements
+
+* Leaflet builds (*.js files in the `dist` folder) were removed from the repo and are now done automatically on each commit for `master` and `stable` branches by [Travis CI](travis-ci.org/Leaflet/Leaflet). The download links are on the [Leafet download page](http://leafletjs.com/download.html).
## 0.6.2 (June 28, 2013)
@@ -26,6 +61,7 @@ An in-progress version being developed on the master branch. No changes since la
* Moved polyline editing code into [Leaflet.draw](https://github.com/Leaflet/Leaflet.draw) plugin (where it fits much better along with all other editing and drawing handlers). The API remains the same.
* Dropped support for environments that augment `Object.prototype` (luckily it's a thing of the past nowadays).
+ * `Map` `invalidateSize` no longer fires `move` and `moveend` events if the map size didn't change. [#1819](https://github.com/Leaflet/Leaflet/issues/1819)
### Improvements
@@ -127,22 +163,23 @@ An in-progress version being developed on the master branch. No changes since la
* Fixed a bug with `contextmenu` events on popups falling through to map (by [@snkashis](https://github.com/snkashis)). [#1730](https://github.com/Leaflet/Leaflet/issues/1730) [#1732](https://github.com/Leaflet/Leaflet/issues/1732)
* Fixed `404` tile loading errors when browsing the map off the world bounds.
* Fixed shifted mouse events in some cases with map inside a relatively positioned parent (by [@scooterw](https://github.com/scooterw) and [@jec006](https://github.com/jec006)). [#1670](https://github.com/Leaflet/Leaflet/issues/1670) [#1684](https://github.com/Leaflet/Leaflet/issues/1684) [#1745](https://github.com/Leaflet/Leaflet/issues/1745) [#1744](https://github.com/Leaflet/Leaflet/issues/1744)
+ * Fixed a bug where tile layer z-index order sometimes broke after view reset. [#1422](https://github.com/Leaflet/Leaflet/issues/1422)
#### Browser bugfixes
* Fixed a bug with undesirable page scrolling in Firefox 17+ when you zoom the map by scrolling (by [@jfirebaugh](https://github.com/jfirebaugh)). [#1789](https://github.com/Leaflet/Leaflet/issues/1789) [#1788](https://github.com/Leaflet/Leaflet/issues/1788)
- * Fixed a bug in Android where click was triggered twice on one tap (by [@jerel](https://github.com/jerel) & [@mourner](https://github.com/mourner)). [#1227](https://github.com/Leaflet/Leaflet/pull/1227) [#1263](https://github.com/Leaflet/Leaflet/issues/1263) [#1785](https://github.com/Leaflet/Leaflet/issues/1785) [#1694](https://github.com/Leaflet/Leaflet/issues/1694)
- * Fixed a bug in Android where click on a collapsed layers control would immediately select one of the layers (by [@danzel](https://github.com/danzel)). [#1784](https://github.com/Leaflet/Leaflet/issues/1784) [#1694](https://github.com/Leaflet/Leaflet/issues/1694)
- * Fixed a bug where `TileLayer` opacity didn't work in IE 7-8 (by [@javisantana](https://github.com/javisantana) & [@danzel](https://gi
-.com/danzel)). [#1084](https://github.com/Leaflet/Leaflet/issues/1084) [#1396](https://github.com/Leaflet/Leaflet/pull/1396) [#1371](https://github.com/Leaflet/Leaflet/issues/1371)
* Fixed a bug where mouse coordinates where shifted in Firefox if the map was inside a positioned block on a scrolled page (by [@joschka](https://github.com/joschka)). [#1365](https://github.com/Leaflet/Leaflet/pull/1365) [#1322](https://github.com/Leaflet/Leaflet/issues/1322)
* Fixed a bug where box zoom didn't work in some cases in Firefox 18+ (by [@fabriceds](https://github.com/fabriceds)). [#1405](https://github.com/Leaflet/Leaflet/pull/1405)
- * Fixed a bug where tile layer z-index order sometimes broke after view reset. [#1422](https://github.com/Leaflet/Leaflet/issues/1422)
+ * Fixed a bug where `TileLayer` opacity didn't work in IE 7-8 (by [@javisantana](https://github.com/javisantana) & [@danzel](https://gi
+.com/danzel)). [#1084](https://github.com/Leaflet/Leaflet/issues/1084) [#1396](https://github.com/Leaflet/Leaflet/pull/1396) [#1371](https://github.com/Leaflet/Leaflet/issues/1371)
* Fixed Leaflet not working correctly in PhantomJS (by [@rassie](https://github.com/rassie)). [#1501](https://github.com/Leaflet/Leaflet/pull/1501)
+
+#### Mobile bugfixes
+
* Fixed a bug with layers control on WinPhone8/IE10 Touch (by [@danzel](https://github.com/danzel)). [#1635](https://github.com/Leaflet/Leaflet/pull/1635) [#1539](https://github.com/Leaflet/Leaflet/issues/1539)
* Fixed a bug with click sometimes firing twice on WinPhone8/IE10 Touch (by [@danzel](https://github.com/danzel)). [#1694](https://github.com/Leaflet/Leaflet/issues/1694)
-
-#### Mobil
+ * Fixed a bug in Android where click was triggered twice on one tap (by [@jerel](https://github.com/jerel) & [@mourner](https://github.com/mourner)). [#1227](https://github.com/Leaflet/Leaflet/pull/1227) [#1263](https://github.com/Leaflet/Leaflet/issues/1263) [#1785](https://github.com/Leaflet/Leaflet/issues/1785) [#1694](https://github.com/Leaflet/Leaflet/issues/1694)
+ * Fixed a bug in Android where click on a collapsed layers control would immediately select one of the layers (by [@danzel](https://github.com/danzel)). [#1784](https://github.com/Leaflet/Leaflet/issues/1784) [#1694](https://github.com/Leaflet/Leaflet/issues/1694)
#### API bugfixes
diff --git a/PLUGIN-GUIDE.md b/PLUGIN-GUIDE.md
index 49508f44..e9325e57 100644
--- a/PLUGIN-GUIDE.md
+++ b/PLUGIN-GUIDE.md
@@ -7,6 +7,7 @@ This guide lists a number of best practices for publishing a Leaflet plugin that
1. [Presentation](#presentation)
- [Repository](#repository)
+ - [Name](#name)
- [Demo](#demo)
- [Readme](#readme)
- [License](#license)
@@ -24,6 +25,12 @@ If you create a collection of plugins for different uses,
don't put them in one repo —
it's usually easier to work with small, self-contained plugins in individual repositories.
+### Name
+
+Most existing plugins follow the convention of naming plugins (and repos) like this: `Leaflet.MyPluginName`.
+You can use other forms (e.g. "leaflet-my-plugin-name"),
+just make sure to include the word "Leaflet" in the name so that it's obvious that it's a Leaflet plugin.
+
### Demo
The most essential thing to do when publishing a plugin is to include a demo that showcases what the plugin does —
@@ -53,7 +60,7 @@ At a minimum it should contain the following items:
Every open source repository should include a license.
If you don't know what open source license to choose for your code,
-[MIT License](http://opensource.org/licenses/MIT) and [BSD 2-Clause License](http://opensource.org/licenses/BSD-2-Clause) are both good choices.
+[MIT License](http://opensource.org/licenses/MIT) and [BSD 2-Clause License](http://opensource.org/licenses/BSD-2-Clause) are both good choices.
You can either put it in the repo as a `LICENSE` file or just link to the license from the Readme.
## Code
@@ -64,20 +71,21 @@ Keep the file structure clean and simple,
don't pile up lots of files in one place —
make it easy for a new person to find their way in your repo.
-A barebones repo for a simple plugin would like this:
+A barebones repo for a simple plugin would look like this:
```
my-plugin.js
README.md
```
-An example of a file structure for a more sophisticated plugin:
+An example of a more sophisticated plugin file structure:
```
-/src JS source files
-/dist minified plugin JS, CSS, images
-/spec test files
-/examples HTML examples of plugin usage
+/src - JS source files
+/dist - minified plugin JS, CSS, images
+/spec - test files
+/lib - any external libraries/plugins if necessary
+/examples - HTML examples of plugin usage
README.md
LICENSE
package.json
@@ -94,15 +102,16 @@ and putting a space after the `function` keyword.
### Plugin API
-Never expose global variables in your plugin.
-If you have a new class, put it directly in the `L` namespace (`L.MyPlugin`).
-If you inherit one of the existing classes, make it a sub-property (`L.TileLayer.Banana`).
+Never expose global variables in your plugin.
+If you have a new class, put it directly in the `L` namespace (`L.MyPlugin`).
+If you inherit one of the existing classes, make it a sub-property (`L.TileLayer.Banana`).
If you want to add new methods to existing Leaflet classes, you can do it like this: `L.Marker.include({myPlugin: …})`.
-Function, method and property names should be in `camelCase`.
+Function, method and property names should be in `camelCase`.
Class names should be in `CapitalizedCamelCase`.
-If you have a lot of arguments in your function, consider accepting an options object instead (putting default values where possible so that users don't need specify all of them):
+If you have a lot of arguments in your function, consider accepting an options object instead
+(putting default values where possible so that users don't need specify all of them):
```js
// bad
@@ -110,7 +119,7 @@ marker.myPlugin('bla', 'foo', null, {}, 5, 0);
// good
marker.myPlugin('bla', {
- optionOne: 'foo',
+ optionOne: 'foo',
optionThree: 5
});
```
diff --git a/README.md b/README.md
index 4bb234df..e40d3b5b 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
Leaflet is a modern open-source JavaScript library for **mobile-friendly interactive maps**.
It is developed by [Vladimir Agafonkin][] with a team of dedicated [contributors][].
-Weighing just about 27 KB of gzipped JS code, it has all the [features][] most developers ever need for online maps.
+Weighing just about 30 KB of gzipped JS code, it has all the [features][] most developers ever need for online maps.
Leaflet is designed with *simplicity*, *performance* and *usability* in mind.
It works efficiently across all major desktop and mobile platforms out of the box,
@@ -17,6 +17,9 @@ We're happy to meet new contributors.
If you want to **get involved** with Leaflet development, check out the [contribution guide][contribute].
Let's make the best open-source library for maps that can possibly exist!
+P.S. If you're looking for **Leaflet downloads** (including the built master version),
+check out the [Leaflet Download Page][].
+
[![Build Status](https://travis-ci.org/Leaflet/Leaflet.png?branch=master)](https://travis-ci.org/Leaflet/Leaflet)
[Vladimir Agafonkin]: http://agafonkin.com/en
@@ -28,3 +31,4 @@ Let's make the best open-source library for maps that can possibly exist!
[hosted on GitHub]: http://github.com/Leaflet/Leaflet
[contribute]: https://github.com/Leaflet/Leaflet/blob/master/CONTRIBUTING.md "A guide to contributing to Leaflet"
[official website]: http://leafletjs.com
+ [Leaflet Download Page]: http://leafletjs.com/download.html
diff --git a/debug/map/scroll.html b/debug/map/scroll.html
index c36cd647..2da0045e 100644
--- a/debug/map/scroll.html
+++ b/debug/map/scroll.html
@@ -30,7 +30,13 @@
var map = new L.Map('map', {center: latlng, zoom: 15, layers: [cloudmade]});
+ var s = '';
+ for (var i = 0; i < 100; i++) s += 'Test
';
+ var popup = L.popup({maxHeight: 100})
+ .setContent(s)
+ .setLatLng(latlng)
+ .openOn(map);