mirror of
https://github.com/openseadragon/openseadragon.git
synced 2025-02-16 14:53:14 +03:00
Merge pull request #257 from msalsbery/EventSource-Original-Events
originalEvent Pass through to EventSource events (#227)
This commit is contained in:
commit
5d45054fee
@ -30,6 +30,9 @@ OPENSEADRAGON CHANGELOG
|
|||||||
* Added a number of easier coordinate conversion methods to viewport (#243)
|
* 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)
|
* Added the ability to create a viewer and start at a specified page (#252)
|
||||||
* Fixed image resolve issue with collection mode (#255)
|
* Fixed image resolve issue with collection mode (#255)
|
||||||
|
* DOM events are now passed through as 'event.originalEvent' in viewer and button events where appropriate. 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'
|
||||||
|
|
||||||
0.9.131:
|
0.9.131:
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ $.Button = function( options ) {
|
|||||||
enterHandler: function( event ) {
|
enterHandler: function( event ) {
|
||||||
if ( event.insideElementPressed ) {
|
if ( event.insideElementPressed ) {
|
||||||
inTo( _this, $.ButtonState.DOWN );
|
inTo( _this, $.ButtonState.DOWN );
|
||||||
_this.raiseEvent( "enter", {} );
|
_this.raiseEvent( "enter", { originalEvent: event.originalEvent } );
|
||||||
} else if ( !event.buttonDownAny ) {
|
} else if ( !event.buttonDownAny ) {
|
||||||
inTo( _this, $.ButtonState.HOVER );
|
inTo( _this, $.ButtonState.HOVER );
|
||||||
}
|
}
|
||||||
@ -186,30 +186,30 @@ $.Button = function( options ) {
|
|||||||
|
|
||||||
focusHandler: function ( event ) {
|
focusHandler: function ( event ) {
|
||||||
this.enterHandler( event );
|
this.enterHandler( event );
|
||||||
_this.raiseEvent( "focus", {} );
|
_this.raiseEvent( "focus", { originalEvent: event.originalEvent } );
|
||||||
},
|
},
|
||||||
|
|
||||||
exitHandler: function( event ) {
|
exitHandler: function( event ) {
|
||||||
outTo( _this, $.ButtonState.GROUP );
|
outTo( _this, $.ButtonState.GROUP );
|
||||||
if ( event.insideElementPressed ) {
|
if ( event.insideElementPressed ) {
|
||||||
_this.raiseEvent( "exit", {} );
|
_this.raiseEvent( "exit", { originalEvent: event.originalEvent } );
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
blurHandler: function ( event ) {
|
blurHandler: function ( event ) {
|
||||||
this.exitHandler( event );
|
this.exitHandler( event );
|
||||||
_this.raiseEvent( "blur", {} );
|
_this.raiseEvent( "blur", { originalEvent: event.originalEvent } );
|
||||||
},
|
},
|
||||||
|
|
||||||
pressHandler: function ( event ) {
|
pressHandler: function ( event ) {
|
||||||
inTo( _this, $.ButtonState.DOWN );
|
inTo( _this, $.ButtonState.DOWN );
|
||||||
_this.raiseEvent( "press", {} );
|
_this.raiseEvent( "press", { originalEvent: event.originalEvent } );
|
||||||
},
|
},
|
||||||
|
|
||||||
releaseHandler: function( event ) {
|
releaseHandler: function( event ) {
|
||||||
if ( event.insideElementPressed && event.insideElementReleased ) {
|
if ( event.insideElementPressed && event.insideElementReleased ) {
|
||||||
outTo( _this, $.ButtonState.HOVER );
|
outTo( _this, $.ButtonState.HOVER );
|
||||||
_this.raiseEvent( "release", {} );
|
_this.raiseEvent( "release", { originalEvent: event.originalEvent } );
|
||||||
} else if ( event.insideElementPressed ) {
|
} else if ( event.insideElementPressed ) {
|
||||||
outTo( _this, $.ButtonState.GROUP );
|
outTo( _this, $.ButtonState.GROUP );
|
||||||
} else {
|
} else {
|
||||||
@ -219,15 +219,15 @@ $.Button = function( options ) {
|
|||||||
|
|
||||||
clickHandler: function( event ) {
|
clickHandler: function( event ) {
|
||||||
if ( event.quick ) {
|
if ( event.quick ) {
|
||||||
_this.raiseEvent("click", {});
|
_this.raiseEvent("click", { originalEvent: event.originalEvent });
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
keyHandler: function( event ){
|
keyHandler: function( event ){
|
||||||
//console.log( "%s : handling key %s!", _this.tooltip, event.keyCode);
|
//console.log( "%s : handling key %s!", _this.tooltip, event.keyCode);
|
||||||
if( 13 === event.keyCode ){
|
if( 13 === event.keyCode ){
|
||||||
_this.raiseEvent( "click", {} );
|
_this.raiseEvent( "click", { originalEvent: event.originalEvent } );
|
||||||
_this.raiseEvent( "release", {} );
|
_this.raiseEvent( "release", { originalEvent: event.originalEvent } );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -530,7 +530,7 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
|
|||||||
VIEWERS[ this.hash ] = null;
|
VIEWERS[ this.hash ] = null;
|
||||||
delete VIEWERS[ this.hash ];
|
delete VIEWERS[ this.hash ];
|
||||||
|
|
||||||
this.raiseEvent( 'close', {} );
|
this.raiseEvent( 'close' );
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
@ -1487,7 +1487,8 @@ function onCanvasClick( event ) {
|
|||||||
tracker: event.eventSource,
|
tracker: event.eventSource,
|
||||||
position: event.position,
|
position: event.position,
|
||||||
quick: event.quick,
|
quick: event.quick,
|
||||||
shift: event.shift
|
shift: event.shift,
|
||||||
|
originalEvent: event.originalEvent
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1512,7 +1513,8 @@ function onCanvasDrag( event ) {
|
|||||||
tracker: event.eventSource,
|
tracker: event.eventSource,
|
||||||
position: event.position,
|
position: event.position,
|
||||||
delta: event.delta,
|
delta: event.delta,
|
||||||
shift: event.shift
|
shift: event.shift,
|
||||||
|
originalEvent: event.originalEvent
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1524,7 +1526,8 @@ function onCanvasRelease( event ) {
|
|||||||
tracker: event.eventSource,
|
tracker: event.eventSource,
|
||||||
position: event.position,
|
position: event.position,
|
||||||
insideElementPressed: event.insideElementPressed,
|
insideElementPressed: event.insideElementPressed,
|
||||||
insideElementReleased: event.insideElementReleased
|
insideElementReleased: event.insideElementReleased,
|
||||||
|
originalEvent: event.originalEvent
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1542,7 +1545,8 @@ function onCanvasScroll( event ) {
|
|||||||
tracker: event.eventSource,
|
tracker: event.eventSource,
|
||||||
position: event.position,
|
position: event.position,
|
||||||
scroll: event.scroll,
|
scroll: event.scroll,
|
||||||
shift: event.shift
|
shift: event.shift,
|
||||||
|
originalEvent: event.originalEvent
|
||||||
});
|
});
|
||||||
//cancels event
|
//cancels event
|
||||||
return false;
|
return false;
|
||||||
@ -1559,7 +1563,8 @@ function onContainerExit( event ) {
|
|||||||
tracker: event.eventSource,
|
tracker: event.eventSource,
|
||||||
position: event.position,
|
position: event.position,
|
||||||
insideElementPressed: event.insideElementPressed,
|
insideElementPressed: event.insideElementPressed,
|
||||||
buttonDownAny: event.buttonDownAny
|
buttonDownAny: event.buttonDownAny,
|
||||||
|
originalEvent: event.originalEvent
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1574,7 +1579,8 @@ function onContainerRelease( event ) {
|
|||||||
tracker: event.eventSource,
|
tracker: event.eventSource,
|
||||||
position: event.position,
|
position: event.position,
|
||||||
insideElementPressed: event.insideElementPressed,
|
insideElementPressed: event.insideElementPressed,
|
||||||
insideElementReleased: event.insideElementReleased
|
insideElementReleased: event.insideElementReleased,
|
||||||
|
originalEvent: event.originalEvent
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1585,7 +1591,8 @@ function onContainerEnter( event ) {
|
|||||||
tracker: event.eventSource,
|
tracker: event.eventSource,
|
||||||
position: event.position,
|
position: event.position,
|
||||||
insideElementPressed: event.insideElementPressed,
|
insideElementPressed: event.insideElementPressed,
|
||||||
buttonDownAny: event.buttonDownAny
|
buttonDownAny: event.buttonDownAny,
|
||||||
|
originalEvent: event.originalEvent
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,6 +74,8 @@
|
|||||||
eventsHandledMouseTracker = 0,
|
eventsHandledMouseTracker = 0,
|
||||||
eventSourcePassedMouseTracker = 0,
|
eventSourcePassedMouseTracker = 0,
|
||||||
originalEventsPassedMouseTracker = 0,
|
originalEventsPassedMouseTracker = 0,
|
||||||
|
eventsHandledViewer = 0,
|
||||||
|
originalEventsPassedViewer = 0,
|
||||||
releasesExpected = 1,
|
releasesExpected = 1,
|
||||||
clicksExpected = 1;
|
clicksExpected = 1;
|
||||||
|
|
||||||
@ -117,15 +119,27 @@
|
|||||||
$canvas.simulate( 'blur', event );
|
$canvas.simulate( 'blur', event );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var checkOriginalEventReceivedViewer = function ( event ) {
|
||||||
|
eventsHandledViewer++;
|
||||||
|
//TODO Provide a better check for the original event...simulate doesn't currently extend the object
|
||||||
|
// with arbitrary user data.
|
||||||
|
if ( event && event.originalEvent ) {
|
||||||
|
originalEventsPassedViewer++;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
var onEventSourceDrag = function ( event ) {
|
var onEventSourceDrag = function ( event ) {
|
||||||
|
checkOriginalEventReceivedViewer( event );
|
||||||
dragsHandledEventSource++;
|
dragsHandledEventSource++;
|
||||||
};
|
};
|
||||||
|
|
||||||
var onEventSourceRelease = function ( event ) {
|
var onEventSourceRelease = function ( event ) {
|
||||||
|
checkOriginalEventReceivedViewer( event );
|
||||||
releasesHandledEventSource++;
|
releasesHandledEventSource++;
|
||||||
};
|
};
|
||||||
|
|
||||||
var onEventSourceClick = function ( event ) {
|
var onEventSourceClick = function ( event ) {
|
||||||
|
checkOriginalEventReceivedViewer( event );
|
||||||
clicksHandledEventSource++;
|
clicksHandledEventSource++;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -184,6 +198,7 @@
|
|||||||
equal( dragsHandledEventSource, dragCount, "'canvas-drag' event count matches 'mousemove' event count (" + dragCount + ")" );
|
equal( dragsHandledEventSource, dragCount, "'canvas-drag' event count matches 'mousemove' event count (" + dragCount + ")" );
|
||||||
equal( releasesHandledEventSource, releasesExpected, "'canvas-release' event count matches expected (" + releasesExpected + ")" );
|
equal( releasesHandledEventSource, releasesExpected, "'canvas-release' event count matches expected (" + releasesExpected + ")" );
|
||||||
equal( clicksHandledEventSource, releasesExpected, "'canvas-click' event count matches expected (" + releasesExpected + ")" );
|
equal( clicksHandledEventSource, releasesExpected, "'canvas-click' event count matches expected (" + releasesExpected + ")" );
|
||||||
|
equal( originalEventsPassedViewer, eventsHandledViewer, "Original event received count matches expected (" + eventsHandledViewer + ")" );
|
||||||
|
|
||||||
equal( eventSourcePassedMouseTracker, eventsHandledMouseTracker, "Event source received count matches expected (" + eventsHandledMouseTracker + ")" );
|
equal( eventSourcePassedMouseTracker, eventsHandledMouseTracker, "Event source received count matches expected (" + eventsHandledMouseTracker + ")" );
|
||||||
equal( originalEventsPassedMouseTracker, eventsHandledMouseTracker, "Original event received count matches expected (" + eventsHandledMouseTracker + ")" );
|
equal( originalEventsPassedMouseTracker, eventsHandledMouseTracker, "Original event received count matches expected (" + eventsHandledMouseTracker + ")" );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user