Skip to content

Commit 72aca2e

Browse files
committed
Selectmenu: update to use button css
This ensures consistency between different form elements
1 parent c222345 commit 72aca2e

File tree

5 files changed

+20
-35
lines changed

5 files changed

+20
-35
lines changed

tests/unit/selectmenu/selectmenu.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<script src="../../../external/qunit-assert-classes/qunit-assert-classes.js"></script>
1313
<script>
1414
TestHelpers.loadResources({
15-
css: [ "core", "menu" , "selectmenu" ],
15+
css: [ "core", "menu" , "selectmenu", "button" ],
1616
js: [
1717
"ui/core.js",
1818
"ui/widget.js",

tests/unit/selectmenu/selectmenu_core.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ test( "markup structure", function( assert ) {
1313
assert.hasClasses( button,
1414
"ui-selectmenu-button ui-selectmenu-button-closed ui-widget" );
1515
assert.lacksClasses( button, "ui-selectmenu-button-open" );
16+
assert.lacksClasses( button, "ui-selectmenu-open" );
1617
assert.hasClasses( menuWrap, "ui-selectmenu-menu" );
1718
assert.lacksClasses( menuWrap, "ui-selectmenu-menu-open" );
1819
});
@@ -86,7 +87,7 @@ test( "_renderButtonItem()", function() {
8687
element.selectmenu( "refresh" );
8788
option = element.find( "option:selected" );
8889
equal(
89-
option.text() + element[ 0 ].selectedIndex,
90+
" " + option.text() + element[ 0 ].selectedIndex,
9091
button.text(),
9192
"refresh: button item text"
9293
);
@@ -95,7 +96,7 @@ test( "_renderButtonItem()", function() {
9596
menu.find( "li" ).last().simulate( "mouseover" ).trigger( "click" );
9697
option = element.find( "option" ).last();
9798
equal(
98-
option.text() + element[ 0 ].selectedIndex,
99+
" " + option.text() + element[ 0 ].selectedIndex,
99100
button.text(),
100101
"click: button item text"
101102
);
@@ -143,7 +144,7 @@ $.each([
143144
selected.val() ,
144145
"original select state"
145146
);
146-
equal( button.text(), selected.text(), "button text" );
147+
equal( button.text(), " " + selected.text(), "button text" );
147148
start();
148149
});
149150
});
@@ -178,7 +179,7 @@ $.each([
178179
selected.val(),
179180
"original select state"
180181
);
181-
equal( button.text(), selected.text(), "button text" );
182+
equal( button.text(), " " + selected.text(), "button text" );
182183
start();
183184
}, 1 );
184185
});
@@ -219,7 +220,7 @@ $.each([
219220
"button aria-activedescendant" );
220221
equal( element.find( "option:selected" ).val(), options.eq( 1 ).val() ,
221222
"original select state" );
222-
equal( button.text(), options.eq( 1 ).text(), "button text" );
223+
equal( button.text(), " " + options.eq( 1 ).text(), "button text" );
223224
start();
224225
});
225226
});

tests/unit/selectmenu/selectmenu_methods.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,21 +78,21 @@ asyncTest( "refresh - change selected option", function() {
7878
var element = $( "#speed" ).selectmenu(),
7979
button = element.selectmenu( "widget" );
8080

81-
equal( element.find( "option:selected" ).text(), button.text(), "button text after init" );
81+
equal( " " + element.find( "option:selected" ).text(), button.text(), "button text after init" );
8282

8383
button.simulate( "focus" );
8484
setTimeout(function() {
85-
equal( element.find( "option:selected" ).text(), button.text(), "button text after focus" );
85+
equal( " " + element.find( "option:selected" ).text(), button.text(), "button text after focus" );
8686

8787
element[ 0 ].selectedIndex = 0;
8888
element.selectmenu( "refresh" );
89-
equal( element.find( "option:selected" ).text(), button.text(),
89+
equal( " " + element.find( "option:selected" ).text(), button.text(),
9090
"button text after changing selected option" );
9191

9292
element.find( "option" ).prop( "selected", false );
9393
element.append( "<option selected value=\"selected_option\">Selected option</option>" );
9494
element.selectmenu( "refresh" );
95-
equal( "Selected option", button.text(), "button text after adding selected option" );
95+
equal( " Selected option", button.text(), "button text after adding selected option" );
9696

9797
start();
9898
});
@@ -177,7 +177,7 @@ test( "widget and menuWidget", function( assert ) {
177177
menu = element.selectmenu( "menuWidget" );
178178

179179
equal( button.length, 1, "button: one element" );
180-
assert.hasClasses( button, "ui-selectmenu-button" );
180+
assert.hasClasses( button, "ui-button" );
181181

182182
equal( menu.length, 1, "Menu Widget: one element" );
183183
ok( menu.is( "ul.ui-menu" ), "Menu Widget: element and class" );

themes/base/selectmenu.css

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -33,27 +33,10 @@
3333
.ui-selectmenu-open {
3434
display: block;
3535
}
36-
.ui-selectmenu-button {
37-
display: inline-block;
38-
overflow: hidden;
39-
position: relative;
40-
text-decoration: none;
41-
cursor: pointer;
42-
width: 14em;
43-
}
44-
.ui-selectmenu-button span.ui-icon {
45-
right: 0.5em;
46-
left: auto;
47-
margin-top: -8px;
48-
position: absolute;
49-
top: 50%;
50-
}
51-
.ui-selectmenu-button span.ui-selectmenu-text {
36+
.ui-selectmenu-button.ui-button {
5237
text-align: left;
53-
padding: 0.4em 2.1em 0.4em 1em;
54-
display: block;
55-
line-height: 1.4;
5638
overflow: hidden;
5739
text-overflow: ellipsis;
5840
white-space: nowrap;
41+
width: 14em;
5942
}

ui/selectmenu.js

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ return $.widget( "ui.selectmenu", {
8282
},
8383

8484
_drawButton: function() {
85-
var icon,
85+
var icon, space,
8686
that = this,
8787
item = this._parseOption(
8888
this.element.find( "option:selected" ),
@@ -115,10 +115,13 @@ return $.widget( "ui.selectmenu", {
115115
.insertAfter( this.element );
116116

117117
this._addClass( this.button, "ui-selectmenu-button ui-selectmenu-button-closed",
118-
"ui-widget ui-state-default" );
118+
"ui-button ui-widget" );
119119

120120
icon = $( "<span>" ).prependTo( this.button );
121+
space = $( "<span> </span>" );
122+
this._addClass( space, "ui-selectmenu-button-space" );
121123
this._addClass( icon, null, "ui-icon " + this.options.icons.button );
124+
icon.after( space );
122125

123126
this.buttonItem = this._renderButtonItem( item )
124127
.appendTo( this.button );
@@ -136,8 +139,6 @@ return $.widget( "ui.selectmenu", {
136139
that._refreshMenu();
137140
}
138141
} );
139-
this._hoverable( this.button );
140-
this._focusable( this.button );
141142
},
142143

143144
_drawMenu: function() {
@@ -603,7 +604,7 @@ return $.widget( "ui.selectmenu", {
603604
// we always remove classes first and add them second, otherwise if both classes have the
604605
// same theme class, it will be removed after we add it.
605606
this._removeClass( this.button, "ui-selectmenu-button-" +
606-
( this.isOpen ? "closed" : "open" ) )
607+
( this.isOpen ? "closed" : "open" ) )
607608
._addClass( this.button, "ui-selectmenu-button-" +
608609
( this.isOpen ? "open" : "closed" ) )
609610
._toggleClass( this.menuWrap, "ui-selectmenu-open", null, this.isOpen );

0 commit comments

Comments
 (0)