jenkins-bot has submitted this change and it was merged. 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(-) Approvals: Gilles: Looks good to me, approved jenkins-bot: Verified diff --git a/resources/mmv/mmv.lightboxinterface.js b/resources/mmv/mmv.lightboxinterface.js index fda8211..794b20b 100644 --- a/resources/mmv/mmv.lightboxinterface.js +++ b/resources/mmv/mmv.lightboxinterface.js @@ -510,6 +510,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: merged Gerrit-Change-Id: I8998fd27a7d60f5826802153d3ad74ab8a37c3fe Gerrit-PatchSet: 2 Gerrit-Project: mediawiki/extensions/MultimediaViewer Gerrit-Branch: master Gerrit-Owner: Gilles <[email protected]> Gerrit-Reviewer: Aarcos <[email protected]> Gerrit-Reviewer: Gilles <[email protected]> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
