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

Reply via email to