You are on page 1of 9

OPENSEADRAGON CHANGELOG

=======================
2.1.0:
* BREAKING CHANGE: the tile does not hold a reference to its image anymore. Only
the tile cache keep a reference to images.
* BREAKING CHANGE: TileSource.tileSize no longer exists; use TileSource.getTileW
idth() and TileSource.getTileHeight() instead.
* DEPRECATION: let ImageRecord.getRenderedContext create the rendered context in
stead of using ImageRecord.setRenderedContext
* DEPRECATION: TileSource.getTileSize() is deprecated. Use TileSource.getTileWid
th() and TileSource.getTileHeight() instead.
* Changed resize behaviour to prevent "snapping" to world bounds when constraint
s allow more space (#711)
* Added support for non-square tiles (#673)
* TileSource.Options objects can now optionally provide tileWidth/tileHeight
instead of tileSize for non-square tile support.
* IIIFTileSources will now respect non-square tiles if available.
* Added new tile source for simple images: ImageTileSource (#760)
* Optimized adding large numbers of items to the world with collectionMode (#735
)
* Registers as an AMD module where possible (#719)
* Added "tile-loaded" event on the viewer allowing to modify a tile before it is
marked ready to be drawn (#659)
* Added "tile-unloaded" event on the viewer allowing to free up memory one has a
llocated on a tile (#659)
* Added 'tile-load-failed' event (#725)
* Added additional coordinates conversion methods to TiledImage (#662)
* Added `preserveImageSizeOnResize` option (#666)
* Added collectionColumns as a configuration parameter (#680)
* Added option in addTiledImage to replace tiledImage at index (#706)
* Added autoRefigureSizes flag to World for optimizing mass rearrangements (#715
)
* You can now change viewport margins after the viewer is created (#721)
* Added a patch to help slow down the scroll devices that fire too fast (#754)
* Fixed flickering tiles with useCanvas=false when no cache is used (#661)
* 'display: none' no longer gets reset on overlays during draw (#668)
* Better error reporting for tile load failures (#679)
* Added XDomainRequest as fallback method for ajax requests if XMLHttpRequest fa
ils (for IE < 10) (#693)
* Now avoiding using eval when JSON.parse is available (#696)
* Rotation now works properly on retina display (#708)
* Fixed issue with tiledImages loading tiles at every level instead of just the
best level (#728)
* Fixed placeholderFillStyle flicker (#727)
* Fix for Chrome (v45) issue that key is sometimes undefined outside of the forin loop (#730)
* World.removeAll now cancels any in-flight image loads; same for Viewer.open an
d Viewer.close (#734)
* Fixed overlays position (use rounding instead of flooring and ceiling) (#741)
* Fixed issue with including overlays in your tileSources array when creating/op
ening in the viewer (#745)
* Fixed issue in iOS devices that would cause all touch events to fail after a M
ultitasking Gesture was triggered (#744)
* Fixed an issue with TiledImage setPosition/setWidth/setHeight not reliably tri
ggering a redraw (#720)
* Fixed zooming in with plus key on a Swedish keyboard (#763)
2.0.0:

* True multi-image mode (#450)


* BREAKING CHANGE: Passing an array for the tileSources option is no longer
enough to trigger sequence mode; you have to set the sequenceMode option to true
as well
* BREAKING CHANGE: Navigator no longer sends an open event when its viewer o
pens
* BREAKING CHANGE: Viewer.drawers and Viewer.drawersContainer no longer exis
t
* BREAKING CHANGE: A Viewer's Drawer and Viewport are now made once per View
er and reused for every image that Viewer opens (rather than being recreated for
every open); this means if you change Viewer options between opens, the behavio
r is different now.
* DEPRECATION: use Viewer.addTiledImage instead of Viewer.addLayer
* addTiledImage supports positioning config properties
* DEPRECATION: use World.getItemAt instead of Viewer.getLayerAtLevel
* DEPRECATION: use World.getIndexOfItem instead of Viewer.getLevelOfLayer
* DEPRECATION: use World.getItemCount instead of Viewer.getLayersCount
* DEPRECATION: use World.setItemIndex instead of Viewer.setLayerLevel
* DEPRECATION: use World.removeItem instead of Viewer.removeLayer
* DEPRECATION: use World.needsDraw instead of Drawer.needsUpdate
* DEPRECATION: use TileCache.numTilesLoaded instead of Drawer.numTilesLoaded
* DEPRECATION: use World.resetItems instead of Drawer.reset
* DEPRECATION: use Drawer.clear and World.draw instead of Drawer.update
* DEPRECATION: the layersAspectRatioEpsilon option is no longer necessary
* DEPRECATION: Viewer's add-layer event is now World's add-item event
* DEPRECATION: Viewer's layer-level-changed event is now World's item-indexchange event
* DEPRECATION: Viewer's remove-layer event is now World's remove-item event
* DEPRECATION: Viewer's add-layer-failed event is now add-item-failed
* DEPRECATION: TileSourceCollection has been retired in favor of World
* DEPRECATION: collectionMode no longer draws outlines or reflections for it
ems
* Drawer has been split into three classes:
* TiledImage, tile management and positioning for a single tiled image
* TileCache, tile caching for all images
* Drawer, tile drawing for all images
* New class: World, keeps track of multiple images in the scene
* Viewer now has world and tileCache properties
* Rect and Point now have clone functions
* New Viewport method for managing homeBounds as well as constraints: setHom
eBounds
* Viewport.open supports positioning config properties
* For multi-image open, drawing isn't started until all tileSources have bee
n opened
* You can specify a clip area for each image (only works on browsers that su
pport the HTML5 canvas) (#594)
* Added placeholderFillStyle so image rectangles can be drawn even before th
eir tiles load (#635)
* Ability to set opacity on individual TiledImages (#644)
* Margins option to push the home region in from the edges of the Viewer (#505)
* Rect and Point toString() functions are now consistent: rounding values to nea
rest hundredth
* Overlays appear in the DOM immediately on open or addOverlay (#507)
* imageLoaderLimit now works (#544)
* Turning off scrollToZoom in gestureSettings now allows scroll events to propag
ate
* You can now set a minZoomLevel that's greater than the home zoom level
* Added union() to OpenSeadragon.Rect
* Fixed an error in fitBounds if the new and old bounds were extremely close in

size
* Added ajaxWithCredentials option (#543)
* Added viewport-change event for after the viewport changes but before it's dra
wn
* A spring's current value is now updated immediately on reset (#524)
* Fixed an error in fitBounds that occurred sometimes with immediately = true
* Added support for HDPI (retina) displays (#583)
* Corrected IIIF tile source to use canonical syntax (#586)
* Fixed x/y typo that caused horizontal reference strip to be rendered only rela
tive to height (#595)
* Fixed Firefox 35 not able to open local files (#588)
* Fixed an issue with zero size viewers in IE8 (#609)
* Fixed: Cross Origin policy not working (#613)
* Optimized tile loading by clearing the queue on a re-draw when imageLoaderLimi
t is set (#616)
* Now animating zoom spring exponentially (#631)
* Added http://editorconfig.org/ config file (#637)
* Keyboard pan speed is now the same regardless of zoom level (#645)
1.2.1:
* Added preserveOverlays option (#561)
* Fixed: DZI tilesource was broken on IE8/IE9 (#563)
* Exposed secondary pointer button (middle, right, etc.) events from MouseTracke
r and through viewer (#479)
* MouseTracker - Improved IE 8 compatibility (#562)
* MouseTracker - Improved IE 9+ compatibility (#564)
* MouseTracker - Simulated touchenter/touchleave events now bubble to parent ele
ment MouseTrackers (#566)
* MouseTracker - Improved multitouch support in enter/exit event handlers (#566)
* MouseTracker - orphaned tracked touch pointers removed (fix for #539)
* MouseTracker - removed touchenter/touchleave event support since the events do
n't exist on any known platform and have been removed from the W3C specification
(#566)
* Removed Viewer onContainerPress/onContainerRelease handlers (and the associate
d 'container-release' event ) that were never fired due to the canvas (child) el
ement capturing the DOM events (#566)
* Added 'canvas-enter', 'canvas-exit', and 'canvas-press' events to Viewer (#566
)
* ButtonGroup - removed obsolete MouseTracker event handlers (#566)
* MouseTracker - added keydown and keyup handlers (#568)
* Modifier keys ignored in keyboard navigation handlers (#503)
* Requesting keyboard focus when viewer is clicked (#537)
* Arrow key navigation fixed across platforms (#565)
* Removed textarea element from viewer DOM. Viewer.canvas now handles keyboard n
avigation (#569)
* Removed 'position' property from MouseTracker keyDownHandler/keyUpHandler/keyH
andler functions (#573)
* Fixed pointer event model detection for IE 10 and IE 11 (#571)
* Added setMouseNavEnabled() support to Navigator (#572)
* MouseTracker now defaults to tracking on (#558)
* Removed Viewer focusHandler/onCanvasFocus (#577)
* Added tabIndex option to viewer (#577)
1.2.0:
* New combined IIIF TileSource for 1.0 through 2.0 (#441)
* BREAKING CHANGE: Removed IIIF1_1TileSource (now that IIIFTileSource suppor
ts all versions)
* Allowed TileSources to have dynamic tileSize via source.getTileSize(level) (#4

41)
* DEPRECATION: Use .getTileSize(level) instead of .tileSize
Fix for IIPServer-style urls when using DZI (#413)
Fix memory leak while destroying the viewer (#421)
Added fitBoundsWithConstraints() to the viewport (#423)
Fixed MouseTracker cross-browser issues with tracking pointers over and out of
the tracked element (pull request #448, fix for #152, #404, #420, and #427)
* Fixed incorrect flick direction after image is rotated (#452)
* Debug mode now works with rotate images (#453)
* Now supporting dzi xml with namespaces (#462)
* You can now rotate the navigator along with the main viewer (#455)
* Viewport.setRotation now allows all rotation angles (#466)
* Pinch rotate is now available (defaults to off) (#468)
* Added option for home button to fill viewer (#474)
* Better handling of mid-update image loaded callbacks (#409)
* Tracked pointers are now cleaned up when Viewer.setMouseNavEnabled(false) is c
alled (#518)
* Added explicit pointer capture for touch event model touchstart events (#552)
*
*
*
*

1.1.1:
* Fixed issue with dragging the navigator highlight on Webkit browsers (#395)
* Improved Viewer Options Support in Gesture Handling (#399)
1.1.0:
* BREAKING CHANGE: the openseadragon-canvas element now has two child divs. This
means: (#298)
* The drawer element is no longer accessible via viewer.canvas.firstChild bu
t via viewer.drawersContainer.firstChild or viewer.drawer.canvas.
* The overlays elements are no longer accessible via viewer.canvas.childNode
s but via viewer.overlaysContainer.childNodes or viewer.currentOverlays[i].eleme
nt.
* BREAKING CHANGE: Pseudo full screen mode on IE<11 using activex has been dropp
ed. OpenSeadragon will run in full page if full screen mode is requested.
* BREAKING CHANGE: MouseTracker touch pinch gestures are no longer converted to
scroll events. MouseTracker.pinchHandler should be used instead. (#369)
* DEPRECATION: overlay functions have been moved from Drawer to Viewer (#331)
* DEPRECATION: OpenSeadragon.cancelFullScreen has been renamed OpenSeadragon.exi
tFullScreen (#358)
* DEPRECATION: The 'isTouchEvent' property passed in MouseTracker events is depr
ecated and has been replaced with 'pointerType', which is a String value "mouse"
, "touch", "pen", etc. to support multiple simultaneous pointing devices (#369)
* DEPRECATION: The 'buttonDownAny' property passed in MouseTracker enter and exi
t events (enterHandler/exitHandler) is deprecated and has been replaced with 'bu
ttons', which indicates the button(s) currently pressed (#369)
* DEPRECATION: The 'buttonDownAny' property passed in Viewer's 'container-enter'
and 'container-exit' events is deprecated and has been replaced with 'buttons',
which indicates the button(s) currently pressed (#369)
* Added layers support. Multiple images can now been displayed on top of each ot
her with transparency via the Viewer.addLayer method (#298)
* Improved overlay functions (#331)
* Fixed: Nav button highlight states aren't quite aligned on Firefox (#303)
* Added ControlAnchor options for default controls (#304)
* Enabled basic cross-domain tile loading without tainting canvas (works in Chro
me and Firefox) (#308)
* Added crossOriginPolicy drawer configuration to enable or disable CORS image r
equests (#364)
* Disabled CORS by default (#377)
* Added a ControlAnchor.ABSOLUTE enumeration. Enables absolute positioning of co

ntrol elements in the viewer (#310)


* Added a 'navigator-scroll' event to Navigator. Fired when mousewheel events oc
cur in the navigator (#310)
* Added a navigatorMaintainSizeRatio option. If set to true, the navigator minim
ap resizes when the viewer element is resized (#310)
* Added 'ABSOLUTE' as a navigatorPosition option, along with corresponding navig
atorTop, navigatorLeft options. Allows the navigator minimap to be placed anywhe
re in the viewer (#310)
* Enhanced the navigatorTop, navigatorLeft, navigatorHeight, and navigatorWidth
options to allow a number for pixel units or a string for other element units (%
, em, etc.) (#310)
* Additional enhancements for IIIF support (#315)
* Fixed: Setting degrees in Viewer constructor has no effect (#336)
* Added pre-draw event for tiles to allow applications to alter the image (#348)
* Added optional Rotate Left/Right buttons to standard controls (#341)
* Added optimization for large numbers of overlays: `checkResize = false` option
for OpenSeadragon.Overlay (#365)
* Updated full screen API, adding support for Opera and IE11 and allowing keyboa
rd input in Chrome (#358)
* Various fixes to bring OpenSeadragon into W3C compliance (#375)
* Added separate flags for turning off each of the nav buttons (#376)
* Added support for query parameters in DZI tileSource URL (#378)
* Enhanced MouseTracker for multi-touch (#369)
* Added support for tracking multiple touch-points on multiple/simultaneous
pointing devices
* Added support for the W3C Pointer Events event model. Enables touch/multitouch on IE10+
* Added a dragEndHandler event callback, called when a drag gesture ends
* Added a pinchHandler event callback, called as a pinch gesture (2 touch po
ints) is occurring
* Added real-time velocity (speed and direction) tracking to drag operations
. 'speed' and 'direction' values are passed in the dragHandler and dragEndHandle
r event data
* Enhanced Viewer for multi-touch (#369)
* Added pinch zoom with the new MouseTracker pinchHandler. The 'pan' and 'zo
om' Viewer events can be used to detect changes resulting in pinch gestures
* Added a "canvas-pinch" event fired by the pinch event handler
* Added flick gesture with the new MouseTracker dragEndHandler
* Added a "canvas-drag-end" event fired by the drag-end event handler
* Added a GestureSettings class for per-device gesture options. Currently ha
s settings to enable/disable zoom-on-scroll, zoom-on-pinch, zoom-on-click, and f
lick gesture settings.
* Added GestureSettings objects for mouse, touch, and pen devices to the Vie
wer options giving users the ability to customize gesture handling in the viewer
* Added velocity (speed and direction) properties to the "canvas-drag" event
* Added double-click gesture detection to MouseTracker with corresponding dblCli
ckHandler event callback (#392)
* Added zoom on double-click feature to Viewer, with corresponding dblClickToZoo
m option added to the GestureSettings class (#392)
* Made it possible to run OpenSeadragon from local filesystem on some browsers (
#379)
1.0.0:
NOTE: This version has a number of breaking changes to the API, mostly in event
handling. See below.
* BREAKING CHANGE: All EventSource and MouseTracker event handler method signatu
res changed to 'handlerMethod(event)' where event == { eventSource, userData, ..
. } (#251) (Also fixes #23, #224, #239)

* The new eventSource property in the event object replaces the old eventSou
rce parameter that was passed to handler methods.
* Where the event object duplicated the eventSource value, those properties
have been removed. This affects the following events:
* All Button events - 'button' property removed
* All Viewer (Viewer, Drawer, Viewport) events - 'viewer' property remov
ed
* BREAKING CHANGE: Renamed EventHandler to EventSource (#225)
* BREAKING CHANGE: Event names changed for consistency: changed to lower case, c
ompound names hyphenated, and "on" prefixes removed (#226):
* Viewer "animationstart" changed to "animation-start"
* Viewer "animationfinish" changed to "animation-finish"
* Button "onPress" changed to "press"
* Button "onRelease" changed to "release"
* Button "onClick" changed to "click"
* Button "onEnter" changed to "enter"
* Button "onExit" changed to "exit"
* Button "onFocus" changed to "focus"
* Button "onBlur" changed to "blur"
* BREAKING CHANGE: Numerous improvements to fullPage/fullScreen (#256):
* Retains zoom/pan position better when switching into and out of fullPage.
* Retains scroll position when switching back out.
* More resilient to styling variations on the page.
* setFullPage no longer automatically engages fullScreen; there's now a sepa
rate setFullScreen.
* 'fullpage' event is now 'full-page'.
* The `fullpage` property of the 'full-page' event is now `fullPage`.
* There is now a 'full-screen' event with a `fullScreen` property (true if i
t has gone to full screen).
* There are now 'pre-full-page' and 'pre-full-screen' events that include a
`preventDefaultAction` property you can set in your handler to cancel. They also
have `fullPage` and `fullScreen` properties respectively, to indicate if they a
re going into or out of the mode.
* BREAKING CHANGE: Removed the 'onPageChange' callback from the viewer options.
Viewer.goToPage() now raises the 'page' event only (#285)
* Major documentation improvements (#281)
* MouseTracker now passes the original event objects to its handler methods (#23
)
* MouseTracker now supports an optional 'moveHandler' method for tracking mousem
ove events (#215)
* Added stopHandler to MouseTracker. (#262)
* Fixed: Element-relative mouse coordinates now correct if the element and/or pa
ge is scrolled (using new OpenSeadragon.getElementOffset() method) (#131)
* Fixed: Pinch zoom event issue, regressive issue from previous event system cha
nges (#244)
* Added IIIF Image API 1.1 Tile Source (#230)
* IIIF 1.0 now uses pixel based syntax (#249)
* Fixed: Touch event issue where no canvas-click events were being raised (#240)
* Check that zoom reference point is valid before using it in zoomTo and zoomBy
(#247)
* Added a number of easier coordinate conversion methods to viewport (#243)
* Added the ability to create a viewer and start at a specified page (#252)
* Fixed image resolve issue with collection mode (#255)
* DOM events are now passed through as 'event.originalEvent' in viewer and butto
n events where appropriate. (#257) Affects the following events:
* Viewer: 'canvas-release', 'canvas-click', 'canvas-drag', 'canvas-scroll',
'container-enter', 'container-exit', 'container-release'
* Button: 'enter', 'exit', 'press', 'release', 'focus', 'blur', 'click'
* Fixed: IE 10 not reading DZI file correctly in certain circumstances (#218)
* Added support for the 'wheel' DOM mousewheel event (#261)

* Fix for non-canvas tile rendering at large size (#264)


* Drawer now uses an HTML5 canvas element whenever it's available. Can be overri
dden with the Viewer.useCanvas option (#191)
* Added a boolean preventDefaultAction property (default false) to the event obj
ect passed to MouseTracker handler methods. (#270) Implemented in the following
MouseTracker subscribers:
* Viewer.keyboardCommandArea.innerTracker.focusHandler: preventDefaultAction
== true prevents scrolling viewer into view
* Viewer.keyboardCommandArea.innerTracker.keyHandler: preventDefaultAction =
= true prevents viewer keyboard navigation
* Viewer.innerTracker.clickHandler: preventDefaultAction == true prevents vi
ewer zoom on click
* Viewer.innerTracker.dragHandler: preventDefaultAction == true prevents vie
wer panning with mouse/touch
* Viewer.innerTracker.scrollHandler: preventDefaultAction == true prevents v
iewer zooming on mousewheel/pinch
* Fixed: IE8 error with custom buttons - "Object doesn't support this action" (#
279)
* Support IIIF servers that don't report tile dimensions (#286)
* Added an autoResize option. Default is true. When set to false, the viewer tak
es no action when its container element is resized. (#291)
* Added a static 'version' property to OpenSeadragon. Useful for plugins that re
quire specific OpenSeadragon versions. (#292)
0.9.131:
* Fixed: canvas-click event shouldn't fire as you drag (#198)
* Fixed: LegacyTileSource doesn't fail gracefully when no supported file formats
are found (#202)
* Added an optional userData argument to EventHandler.addHandler() which is pass
ed unchanged to the handler method (#203)
* Fixed AJAX error reporting on IE8 (#208)
* Added viewportToImageRectangle method, and updated imageToViewportRectangle, i
mageToViewportCoordinates, and viewportToImageCoordinates to be more flexible wi
th params (#212)
* Fixed: Viewer is not responsive (css) after returning from full screen (#222)
0.9.130:
* Added partial support for rotation (just 90 degree increments for now). (#185)
* Hiding and restoring broke the viewer; fixed (#177)
* You can now provide an onDraw function for overlays to do custom overlay manip
ulation (#160)
* Added a destroy function on the viewer to clean up and remove elements (#179)
* Fixed: navigatorPosition option corrected. (#163)
* OpenSeadragon.now() returned undefined the first time; fixed
* onTouchEnd did not call the correct mouse up handler; fixed (#159)
* Touch events no longer capture mouse (was causing issues on devices that suppo
rt both) (#168)
* Clicking on a button control no longer refreshes page (#184)
* Drawer now works when the page is rtl (#187)
* Fixed a situation that could throw errors in touch handling (#188)
0.9.129:
*
*
*
*
*

Fixed: navigator image not updating when base zoom image is changed (#147)
Fixed tile rendering issue at lower zoom levels with the IIIF TileSource (#55)
On IE, ajax errors would cause an exception to be thrown; fixed (#144)
Faster and more consistent millisecond getter (#138)
Fixed an error when using navPrevNextWrap on single images (#135)

*
*
*
*
*
*

Various fixes to our timer handling (#133)


Now generating source map for openseadragon.min.js (#51)
Fix for calculating overlay width / height (#142)
JSHint tidying (#136)
Improved Ajax method (#149)
Overhauled AJAX error reporting (#151)

0.9.128:
* The navigator is now off by default (#102)
* Reverted minPixelRatio to 0.5 for better quality (#116)
* Sometimes tiles wouldn't resolve if you used the blendTime option; fixed. (#95
)
* You can now choose to have previous and next buttons wrap using the config.nav
PrevNextWrap. (#114)
* You can now specify an ID for a div to hold the navigator (#46)
* You can now click in the navigator to go to a new location (#46)
* Keyboard handling is now done in the viewer rather than navigator (#46)
* Additional navigator fixes (#46)
* Drawer events now fire properly (#94)
* Fixed an error in EventHandler.removeHandler() (#48)
* Better requestAnimationFrame detection on older Firefox (#103)
* More efficient navigator loading (#115)
* Simplified element opacity setting implementation (#123)
0.9.127:
* Fixed a problem with getString when the string property is a sub-property. (#6
4)
* Fixed: Tooltips for Navigation Controls not displaying (#63)
* Cleaned up some diagnostic code that was broken.
* Added fullpage class to viewer element when in fullpage mode (#61)
* Reverted to original New BSD license; cleaned up license declarations (#89)
0.9.126:
* DZI JSONp was broken; fixed.
0.9.125:
* Fully deprecated OpenSeadragon.createFromDZI, safely deprecated Viewer.openTil
eSource and
Viewer.openDZI to use Viewer.open internally. (#53 & #54).
* Full page bug fix for when viewer is child of document body (#43).
* Overlays for DZI bug fix (#45).
* DziTileSource: avoid changing relative paths (#56).
* Fix typo in preserveViewport handling (#77).
* Fix updateMulti timer leak after multiple Viewer.open() calls (#76).
* Minor documentation fixes.
0.9.124:
* Performance enhancements.
0.9.123:
* Real fullscreen support.

0.9.122:
* Performance enhancements.
0.9.121:
* Touch pan now works on Android.
* Pinch zoom is better on all devices.

You might also like