- BREAKING CHANGE: Dropped support for older browsers (IE < 11) (#1872 #1949 #1951 @msalsbery, #1950 @rmontroy)
- BREAKING CHANGE: Removed deprecated OpenSeadragon.getEvent function (#1949 @msalsbery)
- DEPRECATION: MouseTracker exitHandler deprecated for name change to leaveHandler for consistency with DOM event names (#1872 @msalsbery)
- Now when "simple image" tile sources are removed from the viewer, they free the memory used by the pyramid they create (#1789 @TakumaKira)
- Improvements to docs (#1814 @kenanchristian, #1872 @msalsbery, #1996 @tdiprima)
- Better cleanup on destruction, to avoid memory leaks (#1832 @JoFrMueller)
- Better handle destruction when navigator in custom location (#1884 @woodchuck)
- Miscellaneous code cleanup (#1840 @msalsbery)
- You can now specify tileSize for the Zoomify Tile Source (#1868 @abrlam)
- Better use of IIIF "max" and "full" URL parameters (#1871 @MImranAsghar)
- You can now specify the file format of the tiles in the Zoomify tile source (#1889 @abrlam)
- Improved browser sniffing - detect EDGE and CHROMEEDGE browsers (#1872 @msalsbery)
- Improved DOM event model feature detection (#1872 @msalsbery)
- Added support for options parameter on addEvent()/removeEvent (to support passive option) (#1872 @msalsbery)
- Added OpenSeadragon.eventIsCanceled() function for defaultPrevented detection on DOM events (#1872 @msalsbery)
- MouseTracker: better PointerEvent model detection - removed use of deprecated window.navigator.pointerEnabled (#1872 @msalsbery)
- MouseTracker: added overHandler/outHandler options for handling corresponding pointerover/pointerout events (#1872 @msalsbery)
- MouseTracker: changed enterHandler/leaveHandler to use DOM pointerenter/pointerleave events instead of simulating using pointerover/pointerout (#1872 @msalsbery)
- All internal uses of MouseTracker use pointerenter/pointerleave events instead of pointerover/pointerout events for more consistent pointer tracking (#1872 @msalsbery)
- Fixed bug in Button class where two MouseTracker event handlers used an invalid "this" causing issues in some browsers (#1872 @msalsbery)
- Added pointerType property to Viewer container-enter, container-exit, canvas-drag, canvas-drag-end, canvas-pinch events (#1872 @msalsbery)
- MouseTracker: Fire dragEndHandler event even if release point same as initial contact point (#1872 @msalsbery)
- MouseTracker: Pointer capture implemented with capture APIs where available. Only fallback to emulated capture on extremely old browsers (#1872 @msalsbery)
- MouseTracker: Added preProcessEventHandler option to allow MouseTracker instances to control bubbling and default behavior of events on their associated element (#1872 @msalsbery)
- MouseTracker: Improved handling of canceled events (#1872 @msalsbery)
- MouseTracker: Improved releasing of tracked pointers on destroy()/stopTracking() (#1872 @msalsbery)
- Updated Viewer, Button, Drawer, Navigator, ReferenceStrip DOM for proper DOM event handling (#1872 @msalsbery)
- Added OpenSeadragon.setElementPointerEventsNone() for setting pointer-events:'none' on DOM elements (#1872 @msalsbery)
- MouseTracker: added contextMenuHandler option for handling contextmenu events (#1872 @msalsbery)
- Viewer: added a canvas-contextmenu event (#1872 @msalsbery)
- Fixed simulated drag events in navigator tests (#1949 @msalsbery)
- Added preventDefault option to MouseTracker.contextMenuHandler and Viewer 'canvas-contextmenu' event args (#1951 @msalsbery)
- MouseTracker: Added preProcessEventHandler for keydown, keyup, keypress, focus, blur Events (#1951 @msalsbery)
- Fixed preventDefaultAction functionality in viewer events (#1953 @msalsbery)
- Added setImageFormatsSupported function (#1954 @pandaxtc)
- Added dragToPan to the GestureSettings class, implemented in Viewer (#1956 @msalsbery)
- Added preventDefault option to MouseTracker handlers: scrollHandler, keyDownHandler, keyUpHandler, keyHandler (#1957 @msalsbery)
- Fixed test "Events: Viewer: preventDefaultAction in dblClickHandler". Fixes #1372 (#1960 @msalsbery)
- ReferenceStrip: Fixed issue where its element was being removed from its parent element twice on destroy, causing an exception (#1958 @msalsbery)
- ReferenceStrip: Made its element focusable for keyboard navigation (#1958 @msalsbery)
- You can now flip individual images (not just the whole viewport) (#1903 @ali1234)
- Accessibility: we now take the browser's zoom into account when choosing what detail level to draw (#1937 @ronnymikalsen)
- Fixed a bug causing overlays to disappear in Sequence Mode (#1865 @gunmiosb)
- Fixed a bug where the ajaxHeaders provided per-image were not being used for image requests (#1968 @maxshuty)
- MouseTracker: Added workaround for WebKit Pointer Event Implicit Capture Bug (#1972 @msalsbery)
- Removed test for move-leave (fly-over, no enter event)...not a valid, handleable event state, no longer supported (#1972 @msalsbery)
- Added OpenSeadragon.setElementPointerEvents() for setting pointer-events to other values besides 'none' on DOM elements (#1972 @msalsbery)
- Now ensuring the page body is display:block when in fullscreen (#1995 @thewilkybarkid)
- Added a static method in OpenSeadragon to get an existing viewer (#2000 @HerCerM)
- Now ensuring that the new item is already in the navigator when the "add-item" event fires (#2005 @RammasEchor)
- Added keys to change image in sequence mode (j: previous, k: next) (#2007 @RammasEchor)
- Fixed a bug where the navigator wouldn't pick up opacity/composite changes made while it is loading (#2018 @crydell)
- Explicitly set passive:false for wheel event handlers to suppress console warnings. Fixes #1669 (#2043 @msalsbery)
- Viewer's canvas-click events now include an originalTarget property so you can know which element received the click (#2037 @iangilman)
- Added method for getting the size of an image in window coordinates (#2049 @superbland)
- Added a setMaxLevel function to TileSource so you can change its maxLevel if needed (#2059, #2066 @kim-sanghoon)