Releases: openseadragon/openseadragon
Releases · openseadragon/openseadragon
v4.1.1
v4.1.0
- NEW BEHAVIOR: When
navigatorRotate
is false, while the navigator image doesn't rotate, the red outline now does (#2356 @lcl45) - The viewer no longer emits
canvas-key
events for both keydown and keypress events; canvas-key is now just for keydown, and the newcanvas-key-press
is for keypress (#2270 @hrghauri) - You can now specify a priority when calling addHandler, to control when your event handler gets called relative to others (#2273 @Aiosa)
- Added tileRetryMax and tileRetryDelay options, so the viewer can retry loading failed tiles (#2238 @Ughuuu @paaddyy, #2334 @Ughuuu @Titan21)
- All of the viewers keyboard handling is now in response to keydown events (it used to be split between keydown and keypress) (#2291 @MohitBansal321)
- Added
canvas-focus
andcanvas-blur
events to Viewer (#2301 @MohitBansal321) - You can now more easily add custom buttons to the viewer (#2306 @MohitBansal321)
- The fitBounds function now takes zoom constraints into account (#2293 @pearcetm)
- The viewer now has an
after-resize
event what happens after the viewport bounds have been updated, to complement theresize
event which happens before (#2317 @pearcetm) - IIIFTileSource now uses resolution level dimensions provided in the info.json "sizes" field for more accurate tile requests (#2337 @ruven)
- Added setAjaxHeaders method to Viewer and TiledImage (#2346 @uschmidt83)
- Improved documentation (#2297 @KevinBritten)
- Fixed: The
tile-loaded
event's completionCallback could be called more than once in some circumstances (#2282 @Aiosa, @pearcetm) - Fixed: Navigator display rectangle was off if the page had
box-sizing: border-box
(#2276 @ambujsahu81) - Fixed: Code that required identifying functions would fail for async functions (#2273 @Aiosa)
- Fixed: Reference strip click detection was not accurate for long reference strips (#2280 @damonsson)
- Fixed: Translation problems in some circumstances with cropping polygons enabled (#2316 @pearcetm)
- Fixed: The navigator area rectangle would grow larger when you zoom in very far (#2318 @donotloveshampo)
- Fixed: JSON with embedded XML was being incorrectly identified as XML (#2328 @craigberry)
- Fixed: Touch/pinch rotate was not working properly on some platforms (#2324 @rsimon, @pearcetm)
- Fixed: Navigator rotation didn't honor
immediately
parameter (#2333 @robertjcolley) - Fixed: The navigator didn't update for its new size in certain circumstances (#2347 @pearcetm)
v4.0.0
- NEW BEHAVIOR: Setting the viewport rotation now animates by default (pass true for the new
immediately
parameter to disable) (#2136 @jonasengelmann) - NEW BEHAVIOR: The auto resize now takes both width and height into account when scaling the contents proportionally to the viewer (#2256 @pearcetm)
- DEPRECATION: Don't access the viewport's degrees property directly anymore; instead use setRotation and getRotation (#2136 @jonasengelmann)
- New gesture: Double-click and drag to zoom (on by default for touch) (#2225 @HamzaTatheer)
- You can now provide a pivot point when rotating the viewport (#2233 #2253 @pearcetm)
- Improved the constraints that keep the image in the viewer, specifically when zoomed out a lot (#2160 @joedf, #2246 @pearcetm)
- You can now provide an element for the navigator (as an alternative to an ID) (#1303 @cameronbaney, #2166 #2175 @joedf)
- Now supporting IIIF "id" and "identifier" in addition to "@id" (#2173 @ahankinson)
- We now delegate tile fetching and caching to the TileSource, to allow for custom tile formats (#2148 @Aiosa)
- Added support for dynamic URLs from tile sources (#2247 @JohnReagan)
- The viewer now emits before-destroy and destroy events (#2239 @pearcetm)
- Auto resize detection is now more efficient (#2256 @pearcetm)
- Improved documentation (#2211 @shyamkumaryadav)
- Fixed: Cropping tiled images with polygons was broken (#2183 @altert)
- Fixed: Boundary constraints were wrong when the viewport was rotated (#2249 @pearcetm)
- Fixed: IIIF tile sizes would be calculated wrong on rare occasions (#2206 @filak)
- Fixed: Disabling buttons only changed their appearance, but they were still clickable (#2187 @pearcetm)
- Fixed: ImageTileSource produced an error having to do with getTileHashKey (#2190 @Aiosa)
- Fixed: On startup you would get an unnecessary "Viewer.buttons is deprecated" warning (#2201 @joedf, #2219 @jssullivan, #2212 @joedf)
v3.1.0
- Added subPixelRoundingForTransparency Viewer option to address seams that can appear in semi-transparent images (#2075 @TanukiSharp)
- Added Viewer.isAnimating() (#2075 @TanukiSharp)
- Added isFullScreen method to Viewer (#2067 @JachiOnuoha)
- Added option to include POST data when loading files via Ajax (#2072 @Aiosa)
- Exposed TiledImage's private functions for better maintainability (#2134 @Aiosa)
- Tile cache keys are now generated by the tile source, so it's easier to override them as needed (#2138 @Aiosa)
- Pinch to zoom now zooms around the center of the pinch, rather than the center of the viewer (#2158 @cavenel)
- Added fallback and deprecation warning for Viewer.buttons (which got changed to buttonGroup in 3.0.0) (#2153 @devbyjonah)
- Fixed an issue where turning off panVertical or panHorizontal would not affect the panning keyboard combos (#2069 @JachiOnuoha)
- Cleaned up console.logs so that errors and warnings use console.error and console.warn as appropriate (#2073 @Abhishek-90)
- Improved documentation (#2067 @JachiOnuoha, #2112 @shyamkumaryadav, #2152 @joedf, #2155 @samwilson)
- Fixed: Setting useCanvas to false would break the viewer (#2116 @rvv-bouvet)
- Allow silencing multi-image warnings on viewport coordinate conversion functions (#2120 @claycoleman)
- Fixed: Swiping fast multiple times made contact points in MouseTracker out of sync for touch events (#2121 @ronnymikalsen)
- Made MouseTracker more robust in certain scenarios (#2134, #2147 @Aiosa)
- Fixed an issue where full page mode wouldn't grow properly if you resized the window (#2100 @TanukiSharp)
- Now if you pass an error handler into makeAjaxRequest, it doesn't report errors into the console (#2142 @Aiosa)
- Fixed error caused by attaching MouseTracker to the page's document element (#2145 @tdiprima)
- Fixed an issue that would sometimes cause problems with freeing up ImageTileSource memory (#2162 @pearcetm)
v3.0.0
- 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)
v2.4.2
- Add support for IIIF Image API 3.0 beta (#1764)
- You can now crop an image with arbitrary polygons (#1772)
- Improved support for using the Reference Strip in an OpenSeadragon Viewer inside a Web Component (#1676)
- Added setWidth and setHeight methods to Navigator (#1686)
- Improvements to docs (#1696, #1698, #1716, #1719)
- Now passing Viewer AJAX configs down to ReferenceStrip thumbnails (#1701)
- The ReferenceStrip now honors the useCanvas option from the Viewer (#1742)
- Fixed: Navigator was still resizing after you explicitly set its width and height with navigatorWidth and navigatorHeight (#1686)
- Fixed issues with touches on iOS 13 and iPad (#1754, #1756)
- No longer throwing an exception on pages that have malformed URL parameters (#1758)
- Fixed an issue with flipping the viewport on high pixel density screens (#1779)
- Removed use of deprecated imageSmoothingEnabled prefixes (#1740)
v2.4.1
- You can now turn off the default canvas image smoothing, if you want sharp pixels when zoomed in past 100% (#1507, #1593, #1595, #1647, #1648)
- Fixed problem with navigator highlight rectangle when returning from full screen with a custom navigator location (#1515)
- Added option to set rotation increment for nav buttons and keyboard (#1524)
- Fixed issue with flipping and opacity with multi-image (#1549)
- Removed vestigial button group label element that was causing issues for accessibility tools (#1560)
- Fixed a bug causing Viewer.areControlsEnabled to throw an exception (#1562)
- Added tileFormat option to IIIFTileSource so you can specify the tile format (#1625)
- Now using canonical URIs more consistently in IIIF to make caching and processing time easier on the server side (#1625)
- Added support for IIIF's new preferredFormats property (#1656)
v2.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)
v2.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
v2.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)