diff --git a/changelog.txt b/changelog.txt index ba2298ac..6e81a18c 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,7 @@ OPENSEADRAGON CHANGELOG 1.0.0: (in progress) +* BREAKING CHANGE: TileSource 'ready' event handler signature changed for consistency to 'handlerMethod( eventSource, eventData)' where eventData == { tileSource } (#239) * BREAKING CHANGE: Renamed EventHandler to EventSource (#225) * BREAKING CHANGE: MouseTracker event handler method signatures changed to 'handlerMethod( tracker, eventData)' (#23) * BREAKING CHANGE: Event names changed for consistency: changed to lower case, compound names hyphenated, and "on" prefixes removed (#226): @@ -20,6 +21,7 @@ OPENSEADRAGON CHANGELOG * MouseTracker now passes the original event objects to its handler methods (#23) * MouseTracker now supports an optional 'moveHandler' method for tracking mousemove events (#215) * Fixed: Element-relative mouse coordinates now correct if the element and/or page is scrolled (using new OpenSeadragon.getElementOffset() method) (#131) +* Fixed: Touch event issue where no canvas-click events were being raised (#240) 0.9.131: diff --git a/src/mousetracker.js b/src/mousetracker.js index 5161c879..66e2a458 100644 --- a/src/mousetracker.js +++ b/src/mousetracker.js @@ -1020,7 +1020,7 @@ function onMouseUpCaptured( tracker, event, noRelease, isTouch ) { isTouch = isTouch || false; - if ( !THIS[ tracker.hash ].insideElement ) { + if ( !THIS[ tracker.hash ].insideElement || isTouch ) { onMouseUp( tracker, event, isTouch ); } diff --git a/src/tilesource.js b/src/tilesource.js index 9352487e..641f0e65 100644 --- a/src/tilesource.js +++ b/src/tilesource.js @@ -117,15 +117,8 @@ $.TileSource = function( width, height, tileSize, tileOverlap, minLevel, maxLeve for ( i = 0; i < arguments.length; i++ ) { if ( $.isFunction( arguments[ i ] ) ) { callback = arguments[ i ]; - // TODO Send generic object wrapping readySource as a property (breaking change) - // TODO Maybe placeHolderSource should be passed to callback as well for consistency - // with event handler signature? - // Should be this (although technically it works as-is): - //this.addHandler( 'ready', function ( placeHolderSource, placeHolderArgs ) { - // callback( placeHolderArgs ); - //} ); - this.addHandler( 'ready', function ( placeHolderSource, readySource ) { - callback( readySource ); + this.addHandler( 'ready', function ( placeHolderSource, placeHolderEventData ) { + callback( placeHolderSource, placeHolderEventData ); } ); //only one callback per constructor break; @@ -308,10 +301,7 @@ $.TileSource.prototype = { options = $TileSource.prototype.configure.apply( _this, [ data, url ]); readySource = new $TileSource( options ); _this.ready = true; - // TODO Send generic object wrapping readySource as a property (breaking change) - // Should be this: - //_this.raiseEvent( 'ready', { tileSource: readySource } ); - _this.raiseEvent( 'ready', readySource ); + _this.raiseEvent( 'ready', { tileSource: readySource } ); }; if( url.match(/\.js$/) ){ diff --git a/src/viewer.js b/src/viewer.js index 65199316..ecd8560f 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -438,8 +438,8 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, setTimeout(function(){ if ( $.type( tileSource ) == 'string') { //If its still a string it means it must be a url at this point - tileSource = new $.TileSource( tileSource, function( readySource ){ - openTileSource( _this, readySource ); + tileSource = new $.TileSource( tileSource, function( eventSource, eventData ){ + openTileSource( _this, eventData.tileSource ); }); tileSource.addHandler( 'open-failed', function ( name, args ) { _this.raiseEvent( 'open-failed', args );