From b15ae2a64f3a438384f15fa7fdc9c0ea25497528 Mon Sep 17 00:00:00 2001 From: Felix Nagel Date: Wed, 12 Dec 2012 19:31:39 +0100 Subject: [PATCH] Selectmenu: merge and explain if statements in Menu focus event, remove unneeded Menu focus method call in open --- ui/jquery.ui.selectmenu.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js index ec7a35998..b926acf0a 100644 --- a/ui/jquery.ui.selectmenu.js +++ b/ui/jquery.ui.selectmenu.js @@ -134,13 +134,11 @@ $.widget( "ui.selectmenu", { }, focus: function( event, ui ) { var item = ui.item.data( "ui-selectmenu-item" ); - - if ( that.focus !== undefined ) { - if ( item.index !== that.focus ) { - that._trigger( "focus", event, { item: item } ); - if ( !that.isOpen ) { - that._select( item, event ); - } + // prevent inital focus from firing and checks if its a newly focused item + if ( that.focus !== undefined && item.index !== that.focus ) { + that._trigger( "focus", event, { item: item } ); + if ( !that.isOpen ) { + that._select( item, event ); } } that.focus = item.index; @@ -178,6 +176,7 @@ $.widget( "ui.selectmenu", { // select current item item = this._getSelectedItem(); + // make sure menu is selected item aware this.menu.menu( "focus", null, item ); this._setSelected( item.data( "ui-selectmenu-item" ) ); @@ -202,7 +201,6 @@ $.widget( "ui.selectmenu", { this.isOpen = true; 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) if ( this.items && !this.options.dropdown && this.options.position.my == "left top" && this.options.position.at == "left bottom" ) {