Permalink
Browse files

Autocomplete: ESCAPE should not change content of a MultiLine

Fixes #9790
Closes gh-1190
  • Loading branch information...
Yermo authored and scottgonzalez committed Feb 4, 2014
1 parent 5beae72 commit 930bc7df666c997add9978d3cc3139559e71ae77
Showing with 31 additions and 1 deletion.
  1. +28 −0 tests/unit/autocomplete/autocomplete_core.js
  2. +3 −1 ui/autocomplete.js
@@ -189,6 +189,34 @@ asyncTest( "past end of menu in multiline autocomplete", function() {
}, 50 );
});
+asyncTest( "ESCAPE in multiline autocomplete", function() {
+ expect( 2 );
+
+ var customVal = "custom value",
+ element = $( "#autocomplete-contenteditable" ).autocomplete({
+ delay: 0,
+ source: [ "javascript" ],
+ focus: function( event, ui ) {
+ equal( ui.item.value, "javascript", "Item gained focus" );
+ $( this ).text( customVal );
+ event.preventDefault();
+ }
+ });
+
+ element
+ .simulate( "focus" )
+ .autocomplete( "search", "ja" );
+
+ setTimeout(function() {
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.DOWN } );
+ element.simulate( "keydown", { keyCode: $.ui.keyCode.ESCAPE } );
+ equal( element.text(), customVal );
+ start();
+ }, 50 );
+});
+
+
+
asyncTest( "handle race condition", function() {
expect( 3 );
var count = 0,
View
@@ -130,7 +130,9 @@ $.widget( "ui.autocomplete", {
break;
case keyCode.ESCAPE:
if ( this.menu.element.is( ":visible" ) ) {
- this._value( this.term );
+ if ( !this.isMultiLine ) {
+ this._value( this.term );
+ }
this.close( event );
// Different browsers have different default behavior for escape
// Single press can mean undo or clear

0 comments on commit 930bc7d

Please sign in to comment.