Releases: openseadragon/openseadragon
Releases · openseadragon/openseadragon
v5.0.0
- BREAKING CHANGE: Dropped support for IE11 (#2300, #2361, #2553 @AndrewADev, @msalsbery)
- DEPRECATION: The OpenSeadragon.createCallback function is no longer recommended (#2367 @akansjain)
- The viewer now uses WebGL when available (#2310, #2462, #2466, #2468, #2469, #2472, #2478, #2488, #2492, #2521, #2537, #2557, #2558 @pearcetm, @Aiosa, @thec0keman)
- Added webp to supported image formats (#2455 @BeebBenjamin)
- Added avif to supported image formats (#2544 @msalsbery)
- Introduced maxTilesPerFrame option to allow loading more tiles simultaneously (#2387 @jetic83)
- Now when creating a viewer or navigator, we leave its position style alone if possible (#2393 @VIRAT9358)
- Added getter & setter for Viewport.maxZoomPixelRatio (#2506 @eug-L)
- Overlays are now positioned properly when the viewport is flipped (#2546 @BeebBenjamin)
- Added overlayPreserveContentDirection option to keep overlays readable when viewport is flipped (#2546 @BeebBenjamin)
- Test improvements (#2382 @AndrewADev)
- MouseTracker options documentation fixes (#2389 @msalsbery)
- Improved documentation and error message for Viewport.imageToViewportZoom (#2505 @eug-L)
- Fixed documentation typos (#2507 @frameflare)
- Additional documentation fixes (#2563 @msalsbery)
- Fixed: Sometimes if the viewport was flipped and the user zoomed in far enough, it would flip back (#2364 @SebDelile)
- Fixed: Two-finger tap on a Mac trackpad would zoom you out (#2431 @cavenel)
- Fixed: dragToPan gesture could not be disabled when flickEnabled was activated (#2464 @jonasengelmann)
- Fixed: placeholderFillStyle didn't work properly when the image was rotated (#2469 @pearcetm)
- Fixed: Sometimes exponential springs wouldn't ever settle (#2469 @pearcetm)
- Fixed: The navigator wouldn't update its tracking rectangle when the navigator was resized (#2491 @pearcetm)
- Fixed: The drawer would improperly crop when the viewport was flipped and a tiled image was rotated (#2511 @pearcetm, @eug-L)
- Fixed: Flipped viewport caused image to be flipped again when going fullscreen or resizing (#2518 @pearcetm)
- Fixed: Viewer ajax options (loadTilesWithAjax, ajaxHeaders, and ajaxWithCredentials) weren't being propogated to the navigator. (#2539 @eug-L)
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