From b1532ed4aebfb45d96e096d0c163838fa6e42394 Mon Sep 17 00:00:00 2001 From: Felix Nagel Date: Thu, 26 Sep 2013 01:10:16 +0200 Subject: [PATCH] Selectmenu: Click on button text does not open menu in Webkit browsers --- ui/jquery.ui.selectmenu.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ui/jquery.ui.selectmenu.js b/ui/jquery.ui.selectmenu.js index 281674455..a5f9485bd 100644 --- a/ui/jquery.ui.selectmenu.js +++ b/ui/jquery.ui.selectmenu.js @@ -120,7 +120,7 @@ $.widget( "ui.selectmenu", { this.menuInstance = this.menu.menu({ role: "listbox", select: function( event, ui ) { - event.preventDefault(); + event.preventDefault(); that._select( ui.item.data( "ui-selectmenu-item" ), event ); }, focus: function( event, ui ) { @@ -156,6 +156,11 @@ $.widget( "ui.selectmenu", { }, refresh: function() { + this._refreshMenu(); + this._setText( this.buttonText, this._getSelectedItem().text() ); + }, + + _refreshMenu: function() { this.menu.empty(); var item, @@ -177,8 +182,6 @@ $.widget( "ui.selectmenu", { this.menuInstance.focus( null, item ); this._setAria( item.data( "ui-selectmenu-item" ) ); - this._setText( this.buttonText, item.text() ); - // Set disabled state this._setOption( "disabled", this.element.prop( "disabled" ) ); }, @@ -190,7 +193,7 @@ $.widget( "ui.selectmenu", { // If this is the first time the menu is being opened, render the items if ( !this.menuItems ) { - this.refresh(); + this._refreshMenu(); } else { // TODO: Why is this necessary? // Shouldn't the underlying menu always have accurate state? @@ -320,7 +323,7 @@ $.widget( "ui.selectmenu", { focusin: function() { // Delay rendering the menu items until the button receives focus if ( !this.menuItems ) { - this.refresh(); + this._refreshMenu(); } this._off( this.button, "focusin" ); }, -- 2.39.5