mirror of
https://github.com/openseadragon/openseadragon.git
synced 2024-11-21 20:56:09 +03:00
Merge branch 'openseadragon:master' into docs/button-type-fix
This commit is contained in:
commit
8ec6e55304
@ -6,6 +6,7 @@ OPENSEADRAGON CHANGELOG
|
||||
* The viewer no longer emits canvas-key events for both keydown and keypress events; canvas-key is now just for keydown, and the new canvas-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)
|
||||
* All of the viewers keyboard handling is now in response to keydown events (it used to be split between keydown and keypress) (#2291 @MohitBansal321)
|
||||
* 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)
|
||||
|
103
src/viewer.js
103
src/viewer.js
@ -2757,7 +2757,7 @@ function onCanvasKeyDown( event ) {
|
||||
|
||||
if ( !canvasKeyDownEventArgs.preventDefaultAction && !event.ctrl && !event.alt && !event.meta ) {
|
||||
switch( event.keyCode ){
|
||||
case 38://up arrow
|
||||
case 38://up arrow/shift uparrow
|
||||
if (!canvasKeyDownEventArgs.preventVerticalPan) {
|
||||
if ( event.shift ) {
|
||||
this.viewport.zoomBy(1.1);
|
||||
@ -2768,7 +2768,7 @@ function onCanvasKeyDown( event ) {
|
||||
}
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 40://down arrow
|
||||
case 40://down arrow/shift downarrow
|
||||
if (!canvasKeyDownEventArgs.preventVerticalPan) {
|
||||
if ( event.shift ) {
|
||||
this.viewport.zoomBy(0.9);
|
||||
@ -2793,47 +2793,12 @@ function onCanvasKeyDown( event ) {
|
||||
}
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
default:
|
||||
//console.log( 'navigator keycode %s', event.keyCode );
|
||||
event.preventDefault = false;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
event.preventDefault = false;
|
||||
}
|
||||
}
|
||||
function onCanvasKeyPress( event ) {
|
||||
var canvasKeyPressEventArgs = {
|
||||
originalEvent: event.originalEvent,
|
||||
preventDefaultAction: false,
|
||||
preventVerticalPan: event.preventVerticalPan || !this.panVertical,
|
||||
preventHorizontalPan: event.preventHorizontalPan || !this.panHorizontal
|
||||
};
|
||||
|
||||
/**
|
||||
* Raised when a keyboard key is pressed and the focus is on the {@link OpenSeadragon.Viewer#canvas} element.
|
||||
*
|
||||
* @event canvas-key-press
|
||||
* @memberof OpenSeadragon.Viewer
|
||||
* @type {object}
|
||||
* @property {OpenSeadragon.Viewer} eventSource - A reference to the Viewer which raised this event.
|
||||
* @property {Object} originalEvent - The original DOM event.
|
||||
* @property {Boolean} preventDefaultAction - Set to true to prevent default keyboard behaviour. Default: false.
|
||||
* @property {Boolean} preventVerticalPan - Set to true to prevent keyboard vertical panning. Default: false.
|
||||
* @property {Boolean} preventHorizontalPan - Set to true to prevent keyboard horizontal panning. Default: false.
|
||||
* @property {?Object} userData - Arbitrary subscriber-defined object.
|
||||
*/
|
||||
this.raiseEvent('canvas-key-press', canvasKeyPressEventArgs);
|
||||
|
||||
if ( !canvasKeyPressEventArgs.preventDefaultAction && !event.ctrl && !event.alt && !event.meta ) {
|
||||
switch( event.keyCode ){
|
||||
case 43://=|+
|
||||
case 61://=|+
|
||||
case 187://=|+
|
||||
this.viewport.zoomBy(1.1);
|
||||
this.viewport.applyConstraints();
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 45://-|_
|
||||
case 189://-|_
|
||||
this.viewport.zoomBy(0.9);
|
||||
this.viewport.applyConstraints();
|
||||
event.preventDefault = true;
|
||||
@ -2843,9 +2808,8 @@ function onCanvasKeyPress( event ) {
|
||||
this.viewport.applyConstraints();
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 119://w
|
||||
case 87://W
|
||||
if (!canvasKeyPressEventArgs.preventVerticalPan) {
|
||||
case 87://W/w
|
||||
if (!canvasKeyDownEventArgs.preventVerticalPan) {
|
||||
if ( event.shift ) {
|
||||
this.viewport.zoomBy(1.1);
|
||||
} else {
|
||||
@ -2855,9 +2819,8 @@ function onCanvasKeyPress( event ) {
|
||||
}
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 115://s
|
||||
case 83://S
|
||||
if (!canvasKeyPressEventArgs.preventVerticalPan) {
|
||||
case 83://S/s
|
||||
if (!canvasKeyDownEventArgs.preventVerticalPan) {
|
||||
if ( event.shift ) {
|
||||
this.viewport.zoomBy(0.9);
|
||||
} else {
|
||||
@ -2867,46 +2830,45 @@ function onCanvasKeyPress( event ) {
|
||||
}
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 97://a
|
||||
if (!canvasKeyPressEventArgs.preventHorizontalPan) {
|
||||
case 65://a/A
|
||||
if (!canvasKeyDownEventArgs.preventHorizontalPan) {
|
||||
this.viewport.panBy(this.viewport.deltaPointsFromPixels(new $.Point(-40, 0)));
|
||||
this.viewport.applyConstraints();
|
||||
}
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 100://d
|
||||
if (!canvasKeyPressEventArgs.preventHorizontalPan) {
|
||||
case 68://d/D
|
||||
if (!canvasKeyDownEventArgs.preventHorizontalPan) {
|
||||
this.viewport.panBy(this.viewport.deltaPointsFromPixels(new $.Point(40, 0)));
|
||||
this.viewport.applyConstraints();
|
||||
}
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 114: //r - clockwise rotation
|
||||
if(this.viewport.flipped){
|
||||
this.viewport.setRotation(this.viewport.getRotation() - this.rotationIncrement);
|
||||
} else{
|
||||
this.viewport.setRotation(this.viewport.getRotation() + this.rotationIncrement);
|
||||
}
|
||||
this.viewport.applyConstraints();
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 82: //R - counterclockwise rotation
|
||||
case 82: //r - clockwise rotation/R - counterclockwise rotation
|
||||
if(event.shift){
|
||||
if(this.viewport.flipped){
|
||||
this.viewport.setRotation(this.viewport.getRotation() + this.rotationIncrement);
|
||||
} else{
|
||||
this.viewport.setRotation(this.viewport.getRotation() - this.rotationIncrement);
|
||||
}
|
||||
}else{
|
||||
if(this.viewport.flipped){
|
||||
this.viewport.setRotation(this.viewport.getRotation() - this.rotationIncrement);
|
||||
} else{
|
||||
this.viewport.setRotation(this.viewport.getRotation() + this.rotationIncrement);
|
||||
}
|
||||
}
|
||||
this.viewport.applyConstraints();
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 102: //f
|
||||
case 70: //f/F
|
||||
this.viewport.toggleFlip();
|
||||
event.preventDefault = true;
|
||||
break;
|
||||
case 106: //j - previous image source
|
||||
case 74: //j - previous image source
|
||||
this.goToPreviousPage();
|
||||
break;
|
||||
case 107: //k - next image source
|
||||
case 75: //k - next image source
|
||||
this.goToNextPage();
|
||||
break;
|
||||
default:
|
||||
@ -2919,7 +2881,24 @@ function onCanvasKeyPress( event ) {
|
||||
}
|
||||
}
|
||||
|
||||
function onCanvasKeyPress( event ) {
|
||||
var canvasKeyPressEventArgs = {
|
||||
originalEvent: event.originalEvent,
|
||||
};
|
||||
|
||||
/**
|
||||
* Raised when a keyboard key is pressed and the focus is on the {@link OpenSeadragon.Viewer#canvas} element.
|
||||
*
|
||||
* @event canvas-key-press
|
||||
* @memberof OpenSeadragon.Viewer
|
||||
* @type {object}
|
||||
* @property {OpenSeadragon.Viewer} eventSource - A reference to the Viewer which raised this event.
|
||||
* @property {Object} originalEvent - The original DOM event.
|
||||
* @property {?Object} userData - Arbitrary subscriber-defined object.
|
||||
*/
|
||||
|
||||
this.raiseEvent('canvas-key-press', canvasKeyPressEventArgs);
|
||||
}
|
||||
|
||||
function onCanvasClick( event ) {
|
||||
var gestureSettings;
|
||||
|
Loading…
Reference in New Issue
Block a user