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

Reply via email to