Selectmenu: merge and explain if statements in Menu focus event, remove unneeded Menu focus method call in open

This commit is contained in:
Felix Nagel 2012-12-12 19:31:39 +01:00
parent 812a90fc82
commit b15ae2a64f

View File

@ -134,15 +134,13 @@ $.widget( "ui.selectmenu", {
}, },
focus: function( event, ui ) { focus: function( event, ui ) {
var item = ui.item.data( "ui-selectmenu-item" ); var item = ui.item.data( "ui-selectmenu-item" );
// prevent inital focus from firing and checks if its a newly focused item
if ( that.focus !== undefined ) { if ( that.focus !== undefined && item.index !== that.focus ) {
if ( item.index !== that.focus ) {
that._trigger( "focus", event, { item: item } ); that._trigger( "focus", event, { item: item } );
if ( !that.isOpen ) { if ( !that.isOpen ) {
that._select( item, event ); that._select( item, event );
} }
} }
}
that.focus = item.index; that.focus = item.index;
// Set ARIA active descendant // Set ARIA active descendant
@ -178,6 +176,7 @@ $.widget( "ui.selectmenu", {
// select current item // select current item
item = this._getSelectedItem(); item = this._getSelectedItem();
// make sure menu is selected item aware
this.menu.menu( "focus", null, item ); this.menu.menu( "focus", null, item );
this._setSelected( item.data( "ui-selectmenu-item" ) ); this._setSelected( item.data( "ui-selectmenu-item" ) );
@ -202,7 +201,6 @@ $.widget( "ui.selectmenu", {
this.isOpen = true; this.isOpen = true;
this._toggleAttr(); this._toggleAttr();
this.menu.menu( "focus", event, this._getSelectedItem() );
// do not change position if non default position options are set (needed for custom positioned popup menus) // do not change position if non default position options are set (needed for custom positioned popup menus)
if ( this.items && !this.options.dropdown && this.options.position.my == "left top" && this.options.position.at == "left bottom" ) { if ( this.items && !this.options.dropdown && this.options.position.my == "left top" && this.options.position.at == "left bottom" ) {