Permalink
Browse files

Menu: Maintain focus on already selected item during typeahead

Fixes #10644
Closes gh-1354
  • Loading branch information...
tjvantoll committed Oct 2, 2014
1 parent e3e5a9f commit 6b6b49f678706280c5590a5097ef9f0aca359d4b
Showing with 23 additions and 1 deletion.
  1. +22 −0 tests/unit/menu/menu_events.js
  2. +1 −1 ui/menu.js
@@ -629,6 +629,28 @@ asyncTest( "handle keyboard navigation with spelling of menu items", function()
element[ 0 ].focus();
});
asyncTest( "Keep focus on selected item (see #10644)", function() {
expect( 1 );
var element = $( "#menu2" ).menu({
focus: function( event ) {
log( $( event.target ).find( ".ui-state-focus" ).index() );
}
});
log( "keydown", true );
element.one( "menufocus", function() {
element.simulate( "keydown", { keyCode: 65 } );
element.simulate( "keydown", { keyCode: 68 } );
element.simulate( "keydown", { keyCode: 68 } );
element.simulate( "keydown", { keyCode: 89 } );
element.simulate( "keydown", { keyCode: 83 } );
equal( logOutput(), "keydown,0,1,3,3,3",
"Focus stays on 'Addyston', even after other options are eliminated" );
start();
});
element[ 0 ].focus();
});
test( "#9469: Stopping propagation in a select event should not suppress subsequent select events.", function() {
expect( 1 );
var element = $( "#menu1" ).menu({
View
@@ -251,7 +251,7 @@ return $.widget( "ui.menu", {
if ( match.length ) {
this.focus( event, match );
if ( match.length > 1 ) {
if ( match.length > 0 ) {
this.previousFilter = character;
this.filterTimer = this._delay(function() {
delete this.previousFilter;

0 comments on commit 6b6b49f

Please sign in to comment.