Gilles has uploaded a new change for review. https://gerrit.wikimedia.org/r/115639
Change subject: Ignore left/right key presses when there's a modifier ...................................................................... Ignore left/right key presses when there's a modifier Change-Id: I8998fd27a7d60f5826802153d3ad74ab8a37c3fe Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/236 --- M resources/mmv/mmv.lightboxinterface.js M tests/qunit/mmv/mmv.lightboxinterface.test.js 2 files changed, 47 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MultimediaViewer refs/changes/39/115639/1 diff --git a/resources/mmv/mmv.lightboxinterface.js b/resources/mmv/mmv.lightboxinterface.js index 5ec8040..a88a382 100644 --- a/resources/mmv/mmv.lightboxinterface.js +++ b/resources/mmv/mmv.lightboxinterface.js @@ -502,6 +502,12 @@ LIP.keydown = function ( e ) { var isRtl = $( document.body ).hasClass( 'rtl' ); + if ( e.altKey || e.shiftKey || e.ctrlKey || e.metaKey ) { + return; + } + + e.preventDefault(); + switch ( e.which ) { case 37: // Left arrow diff --git a/tests/qunit/mmv/mmv.lightboxinterface.test.js b/tests/qunit/mmv/mmv.lightboxinterface.test.js index a71cd9e..e3d20d9 100644 --- a/tests/qunit/mmv/mmv.lightboxinterface.test.js +++ b/tests/qunit/mmv/mmv.lightboxinterface.test.js @@ -389,7 +389,7 @@ } ); QUnit.test( 'Unblur', 3, function ( assert ) { - var lightbox = new mw.mmv.LightboxInterface( mw.mediaViewer ), + var lightbox = new mw.mmv.LightboxInterface( mw.mmv.mediaViewer ), oldAnimate = $.fn.animate; $.fn.animate = function ( target, options ) { @@ -427,4 +427,44 @@ $.fn.animate = oldAnimate; } ); + + QUnit.test( 'Keyboard prev/next', 2, function ( assert ) { + var viewer = mw.mmv.mediaViewer, + lightbox = new mw.mmv.LightboxInterface( viewer ), + oldNextImage = viewer.nextImage, + oldPrevImage = viewer.prevImage; + + // Since we define both, the test works regardless of RTL settings + viewer.nextImage = function () { + assert.ok( true, 'Next image was open' ); + }; + + viewer.prevImage = function () { + assert.ok( true, 'Prev image was open' ); + }; + + // 37 is left arrow, 39 is right arrow + lightbox.keydown( $.Event( 'keydown', { which : 37 } ) ); + lightbox.keydown( $.Event( 'keydown', { which : 39 } ) ); + + viewer.nextImage = function () { + assert.ok( false, 'Next image should not have been open' ); + }; + + viewer.prevImage = function () { + assert.ok( false, 'Prev image should not have been open' ); + }; + + lightbox.keydown( $.Event( 'keydown', { which : 37, altKey : true } ) ); + lightbox.keydown( $.Event( 'keydown', { which : 39, altKey : true } ) ); + lightbox.keydown( $.Event( 'keydown', { which : 37, ctrlKey : true } ) ); + lightbox.keydown( $.Event( 'keydown', { which : 39, ctrlKey : true } ) ); + lightbox.keydown( $.Event( 'keydown', { which : 37, shiftKey : true } ) ); + lightbox.keydown( $.Event( 'keydown', { which : 39, shiftKey : true } ) ); + lightbox.keydown( $.Event( 'keydown', { which : 37, metaKey : true } ) ); + lightbox.keydown( $.Event( 'keydown', { which : 39, metaKey : true } ) ); + + viewer.nextImage = oldNextImage; + viewer.prevImage = oldPrevImage; + } ); }( mediaWiki, jQuery ) ); -- To view, visit https://gerrit.wikimedia.org/r/115639 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I8998fd27a7d60f5826802153d3ad74ab8a37c3fe Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/MultimediaViewer Gerrit-Branch: master Gerrit-Owner: Gilles <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
