OPENSEADRAGON CHANGELOG
=======================
2.4.0:
* BREAKING CHANGE: Viewer's canvas-double-click event is now fired before it initiates the zoom (#1288)
* You can now flip the viewport to get a mirror image of the original (#1441)
* You can now prevent canvas-double-click events from zooming on a per-event basis (#1288)
* Fixed: Opacity 0 images were causing unnecessary redraws (#1319)
* The "page" event is now fired after the page index has been updated (#1330)
* Added option pixelsPerArrowPress that sets the speed of arrow keys (#1364)
* Improved IIIF options.maxLevel calculation (#1401)
* Added canvas-key events, along with the ability to cancel key actions (#1414)
* Added optional zoom in the middle of the image instead of pointer position (#1423)
* Now supporting square edge tiles that are padded rather than cropped (#1426)
* Fixed an issue causing the simple image tileSource to sometimes show duplicate copies (#1370)
* Fixed an issue causing seams to appear in semi-transparent PNG tiled images (#1470)
* Added visual customization options for the navigator (#1480)
* You can now prevent canvas-drag events on the navigator (#1484)
* You can now prevent canvas-click events on the navigator (#1416)
* The navigator can now be restricted to just horizontal or just vertical panning (#1416)
* Fixed DziTileSource so it doesn't load levels above maxLevel or below minLevel, if set (#1492)
2.3.1:
* Debug mode now uses different colors for different tiled images (customizable via debugGridColor) (#1271)
* Fixed a problem with preventDefaultAction for the canvas-drag event (#1278)
* Fixed an issue causing double images with certain aspect ratios (#1280)
* Fixed: placeholderFillStyle had no effect (#1286)
* Fixed seams that appear in wrap mode on Safari and Firefox (#1305)
2.3.0:
* BREAKING CHANGE: Tile.distance has been removed (#1027)
* BREAKING CHANGE: Viewer's canvas-click event is now fired before it initiates the zoom (#1148)
* BREAKING CHANGE: Viewer's canvas-drag event is now fired before it pans (#1149)
* Added Zoomify tile source (#863)
* You can now set the rotation of individual tiled images (#1006)
* Added getFullyLoaded method and "fully-loaded-change" event to TiledImage to know when tiles are fully loaded (#837, #1073)
* You can now preload images without drawing them to the screen (#1071)
* Added support for commonjs (#984)
* Added an option to addTiledImage to change the crossOriginPolicy (#981)
* You can now load tiles via AJAX and custom AJAX request headers (#1055)
* Added ability to provide thumbnail URLs for reference strip (#1241)
* Improved panning constraints for constrainDuringPan (#1133 and #1245)
* You can now prevent canvas-click events from zooming on a per-event basis (#1148)
* You can now prevent canvas-drag events from panning on a per-event basis (#1149)
* The navigationControlAnchor option now works for custom toolbar as well (#1004)
* LegacyTileSource now allows any image URLs regardless of type (#1056)
* Enabled configuration of ImageLoader timeout (#1192)
* Viewer.open() now supports an initialPage argument for sequenceMode (#1196)
* New events for opacity and compositeOperation changes (#1203)
* Added support for setting debug mode after the Viewer object has been constructed (#1224)
* Added functions for dynamically adding and removing the reference strip in sequence mode (#1213)
* Better calculation for TileCache release cutoff (#1214)
* The navigator now picks up opacity and compositeOperation changes (#1203)
* Improved calculation for determining which level to load first (#1198)
* Added fix for supporting weird filenames that look like JSONs (#1189)
* Improved DziTileSource guessing of tilesUrl (#1074)
* The Viewer's tileSources option is now smarter about detecting JSON vs XML vs URL (#999)
* Better compression for our UI images (#1134)
* Optimization: Use the squared distance when comparing tiles (#1027)
* Now clamping pixel ratio density to a minimum of 1, fixing display issues on low density devices (#1200)
* More forgiving check for DZI schema (#1249)
* ImageTileSource now works in IE8 (#1041)
* Fixed CORS bug in IE 10 (#967)
* Fixed issue with tiles not appearing with wrapHorizontal/wrapVertical if you pan too far away from the origin (#987, #1066)
* Fixed: Initial tile load wasn't happening in parallel (#1014)
* Fixed problem with "sparse image" DZI files (#995)
* Fix IndexSizeError on IE and Edge that occurred under certain circumstances (e.g. multi-image with transparency) (#1035)
* Fixed error in IE8 when zooming in (due to edge smoothing) (#1064)
* Fixed issue with OpenSeadragon.version in the minified JavaScript (#1099)
* Fixed smoothTileEdgesMinZoom performance degradation on single-tile images (#1101)
* Fixed issue with tiles not appearing after rotation (#1102)
* Fixed: The navigator wasn't respecting the constrainDuringPan setting (#1104)
* Fixed an issue causing overlays to be mis-positioned in some circumstances (#1119)
* Fixed: ImageTileSource would sometimes produce a double image (#1123)
* Fixed: console.debug caused exceptions on IE10 (#1129)
* Fixed: the reference strip would leak memory when opening new sets of images (#1175)
* Fixed: zoomTo/zoomBy ignore refPoint if immediately is true (#1184)
* Fixed: IIPImageServer didn't work with the latest OSD release (#1199)
* Fixed: setItemIndex method not working with navigator inside "open" event (#1201)
* Fixed: The reference strip didn't show the initial page if it wasn't the first page (#1208)
* Fixed: Sometimes the image would stick to the mouse when right-clicking and left-clicking simultaneously (#1223)
* Fixed issue with transparent images sometimes disappearing on Safari (#1222)
* Fixed: One image failing to load could cause the others to never load (#1229)
* Fixed: Mouse up outside map will cause "canvas-drag" event to stick (#1133)
* Fixed more issues with tracking multiple pointers (#1244)
2.2.1:
* Fixed problems with zoom/pan constraints with certain extreme settings (#965)
* Fixed an issue causing the browser to crash on iOS (#966)
2.2.0:
* BREAKING CHANGE: Viewport.homeBounds, Viewport.contentSize, Viewport.contentAspectX and
Viewport.contentAspectY have been removed. (#846)
* BREAKING CHANGE: The Overlay.getBounds method now takes the viewport as parameter. (#896)
* DEPRECATION: Overlay.scales, Overlay.bounds and Overlay.position have been deprecated. (#896)
* Overlay.width !== null should be used to test whether the overlay scales horizontally
* Overlay.height !== null should be used to test whether the overlay scales vertically
* The Overlay.getBounds method should be used to get the bounds of the overlay in viewport coordinates
* Overlay.location replaces Overlay.position
* DEPRECATION: Viewport.setHomeBounds has been deprecated (#846)
* DEPRECATION: the Viewport constructor is now ignoring the contentSize option (#846)
* Tile edge smoothing at high zoom (#764)
* Fixed issue with reference strip popping up virtual keyboard on mobile devices (#779)
* Now supporting rotation in the Rect class (#782)
* Drag outside of iframe now works better, as long as both pages are on the same domain (#790)
* Coordinate conversion now takes rotation into account (#796)
* Support tile-less IIIF as per LegacyTileSource (#816)
* You can now give an empty string to the tabIndex option (#805)
* Fixed issue with rotation and clicking in the navigator (#807)
* Broadened the check for mime type in LegacyTileSource URLs to allow query strings (#819)
* Added globalCompositeOperation option for tiledImage, to allow for different transfer modes (#814)
* Added Viewer.addSimpleImage method for easily adding non-tiled images (#827)
* DziTileSource now works properly with DZI files that have no extension (#835)
* Fixed content clipping with rotation (#463, #567 and #833)
* Fixed navigator not being rotated when viewport rotation is set in constructor (#840)
* Fixed: Viewer.setMouseNavEnabled wasn't affecting all of the viewer'