jenkins-bot has submitted this change and it was merged. Change subject: Change behavior of keydownhandler execution ......................................................................
Change behavior of keydownhandler execution Now returns whether it thinks it actually did something, rather than whether a handler exists at all. This is mostly relevant for the list tab trigger, which would otherwise be suppressed if we added a linear tab handler for table movement. Change-Id: Ie9cbcda90ba5658d6864ddd88cb0a777b174a5a5 --- M src/ce/keydownhandlers/ve.ce.LinearArrowKeyDownHandler.js M src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js M src/ce/keydownhandlers/ve.ce.LinearEnterKeyDownHandler.js M src/ce/keydownhandlers/ve.ce.LinearEscapeKeyDownHandler.js M src/ce/keydownhandlers/ve.ce.TableArrowKeyDownHandler.js M src/ce/keydownhandlers/ve.ce.TableDeleteKeyDownHandler.js M src/ce/keydownhandlers/ve.ce.TableEnterKeyDownHandler.js M src/ce/ve.ce.KeyDownHandler.js M src/ce/ve.ce.KeyDownHandlerFactory.js 9 files changed, 33 insertions(+), 18 deletions(-) Approvals: Esanders: Looks good to me, approved jenkins-bot: Verified diff --git a/src/ce/keydownhandlers/ve.ce.LinearArrowKeyDownHandler.js b/src/ce/keydownhandlers/ve.ce.LinearArrowKeyDownHandler.js index 13021e3..7398cba 100644 --- a/src/ce/keydownhandlers/ve.ce.LinearArrowKeyDownHandler.js +++ b/src/ce/keydownhandlers/ve.ce.LinearArrowKeyDownHandler.js @@ -70,7 +70,7 @@ ); surface.model.setLinearSelection( range ); e.preventDefault(); - return; + return true; } if ( surface.focusedNode ) { @@ -99,7 +99,7 @@ ); surface.model.setLinearSelection( range ); e.preventDefault(); - return; + return true; } // Else inline focusable node @@ -120,7 +120,7 @@ if ( !upOrDown ) { // un-shifted left/right: we've already moved so preventDefault e.preventDefault(); - return; + return true; } // Else keep going with the cursor in the new place } @@ -196,6 +196,8 @@ surface.updateActiveLink(); surface.surfaceObserver.pollOnce(); } } ); + + return true; }; /* Registration */ diff --git a/src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js b/src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js index 6432ffa..3f99649 100644 --- a/src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js +++ b/src/ce/keydownhandlers/ve.ce.LinearDeleteKeyDownHandler.js @@ -73,7 +73,7 @@ surface.eventSequencer.afterOne( { keydown: surface.surfaceObserver.pollOnce.bind( surface.surfaceObserver ) } ); - return; + return true; } // If the native action would delete an outside nail, move *two* cursor positions @@ -91,7 +91,7 @@ surface.nativeSelection.addRange( range ); surface.updateActiveLink(); e.preventDefault(); - return; + return true; } // If inside an empty link, delete it and preventDefault @@ -135,7 +135,7 @@ surface.nativeSelection.addRange( range ); surface.updateActiveLink(); e.preventDefault(); - return; + return true; } // If the native action would delete an inside nail, move *two* cursor positions @@ -153,7 +153,7 @@ surface.nativeSelection.addRange( range ); surface.updateActiveLink(); e.preventDefault(); - return; + return true; } offset = rangeToRemove.start; @@ -164,7 +164,7 @@ surface.eventSequencer.afterOne( { keydown: surface.surfaceObserver.pollOnce.bind( surface.surfaceObserver ) } ); - return; + return true; } } @@ -175,7 +175,7 @@ tableEditingRange = surface.getActiveTableNode() ? surface.getActiveTableNode().getEditingRange() : null; if ( tableEditingRange && !tableEditingRange.containsRange( rangeToRemove ) ) { e.preventDefault(); - return; + return true; } // Prevent backspacing/deleting over table cells, select the cell instead @@ -195,7 +195,7 @@ ) ); } e.preventDefault(); - return; + return true; } } @@ -211,7 +211,7 @@ if ( startNode.isFocusable() ) { surface.getModel().setLinearSelection( startNode.getOuterRange() ); e.preventDefault(); - return; + return true; } } if ( rangeToRemove.isCollapsed() ) { @@ -224,7 +224,7 @@ ) { // Content node at start or end of document, do nothing. e.preventDefault(); - return; + return true; } else { rangeToRemove = new ve.Range( nodeRange.start, rangeToRemove.start - 1 ); } @@ -237,7 +237,7 @@ surface.focus(); surface.surfaceObserver.clear(); e.preventDefault(); - return; + return true; }; /* Registration */ diff --git a/src/ce/keydownhandlers/ve.ce.LinearEnterKeyDownHandler.js b/src/ce/keydownhandlers/ve.ce.LinearEnterKeyDownHandler.js index e4bf9a6..5eeb0fd 100644 --- a/src/ce/keydownhandlers/ve.ce.LinearEnterKeyDownHandler.js +++ b/src/ce/keydownhandlers/ve.ce.LinearEnterKeyDownHandler.js @@ -52,7 +52,7 @@ focusedNode = surface.getFocusedNode(); if ( focusedNode ) { focusedNode.executeCommand(); - return; + return true; } // Handle removal first @@ -218,6 +218,8 @@ setTimeout( function () { surface.checkSequences(); } ); + + return true; }; /* Registration */ diff --git a/src/ce/keydownhandlers/ve.ce.LinearEscapeKeyDownHandler.js b/src/ce/keydownhandlers/ve.ce.LinearEscapeKeyDownHandler.js index 32d2a67..a26a963 100644 --- a/src/ce/keydownhandlers/ve.ce.LinearEscapeKeyDownHandler.js +++ b/src/ce/keydownhandlers/ve.ce.LinearEscapeKeyDownHandler.js @@ -42,7 +42,10 @@ e.preventDefault(); e.stopPropagation(); tableNode.setEditing( false ); + + return true; } + return false; }; /* Registration */ diff --git a/src/ce/keydownhandlers/ve.ce.TableArrowKeyDownHandler.js b/src/ce/keydownhandlers/ve.ce.TableArrowKeyDownHandler.js index f4dd1ff..dc23afe 100644 --- a/src/ce/keydownhandlers/ve.ce.TableArrowKeyDownHandler.js +++ b/src/ce/keydownhandlers/ve.ce.TableArrowKeyDownHandler.js @@ -91,6 +91,8 @@ rowOffset ); surface.getModel().setSelection( newSelection ); + + return true; }; /* Registration */ diff --git a/src/ce/keydownhandlers/ve.ce.TableDeleteKeyDownHandler.js b/src/ce/keydownhandlers/ve.ce.TableDeleteKeyDownHandler.js index d6a0fce..6f73019 100644 --- a/src/ce/keydownhandlers/ve.ce.TableDeleteKeyDownHandler.js +++ b/src/ce/keydownhandlers/ve.ce.TableDeleteKeyDownHandler.js @@ -62,6 +62,8 @@ { type: '/paragraph' } ] ); } + + return true; }; /* Registration */ diff --git a/src/ce/keydownhandlers/ve.ce.TableEnterKeyDownHandler.js b/src/ce/keydownhandlers/ve.ce.TableEnterKeyDownHandler.js index 27da07a..b1e8d36 100644 --- a/src/ce/keydownhandlers/ve.ce.TableEnterKeyDownHandler.js +++ b/src/ce/keydownhandlers/ve.ce.TableEnterKeyDownHandler.js @@ -40,6 +40,7 @@ e.preventDefault(); tableNode.setEditing( true ); + return true; }; /* Registration */ diff --git a/src/ce/ve.ce.KeyDownHandler.js b/src/ce/ve.ce.KeyDownHandler.js index d6b60a9..eef6fd3 100644 --- a/src/ce/ve.ce.KeyDownHandler.js +++ b/src/ce/ve.ce.KeyDownHandler.js @@ -59,5 +59,6 @@ * @method * @param {ve.ce.Surface} surface Surface * @param {jQuery.Event} e Key down event + * @return {boolean} Whether an action was taken */ ve.ce.KeyDownHandler.static.execute = null; diff --git a/src/ce/ve.ce.KeyDownHandlerFactory.js b/src/ce/ve.ce.KeyDownHandlerFactory.js index b69ed40..037c3c5 100644 --- a/src/ce/ve.ce.KeyDownHandlerFactory.js +++ b/src/ce/ve.ce.KeyDownHandlerFactory.js @@ -74,18 +74,20 @@ * @param {string} selectionName Selection type nane * @param {ve.ce.Surface} surface Surface * @param {jQuery} e Key down event - * @return {boolean} Some handlers were executed + * @return {boolean} Some handlers acted */ ve.ce.KeyDownHandlerFactory.prototype.executeHandlersForKey = function ( key, selectionName, surface, e ) { - var i, + var i, acted, handlers = this.lookupHandlersForKey( key, selectionName ); // Length is likely to be 1 or 0 so don't cache for ( i = 0; i < handlers.length; i++ ) { - handlers[ i ].static.execute( surface, e ); + if ( handlers[ i ].static.execute( surface, e ) ) { + acted = true; + } } - return !!handlers.length; + return acted; }; /* Initialization */ -- To view, visit https://gerrit.wikimedia.org/r/255461 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Ie9cbcda90ba5658d6864ddd88cb0a777b174a5a5 Gerrit-PatchSet: 2 Gerrit-Project: VisualEditor/VisualEditor Gerrit-Branch: master Gerrit-Owner: DLynch <dly...@wikimedia.org> Gerrit-Reviewer: Divec <da...@troi.org> Gerrit-Reviewer: Esanders <esand...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits