diff --git a/src/components/autocomplete/js/autocompleteController.js b/src/components/autocomplete/js/autocompleteController.js index 284a27bb8d5..44e92b12617 100644 --- a/src/components/autocomplete/js/autocompleteController.js +++ b/src/components/autocomplete/js/autocompleteController.js @@ -251,6 +251,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, * When the user's mouse leaves the menu, blur events may hide the menu again. */ function onListLeave () { + if (!hasFocus) elements.input.focus(); noBlur = false; ctrl.hidden = shouldHide(); } @@ -358,8 +359,8 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, * Handles input blur event, determines if the dropdown should hide. */ function blur () { + hasFocus = false; if (!noBlur) { - hasFocus = false; ctrl.hidden = shouldHide(); } } @@ -496,11 +497,7 @@ function MdAutocompleteCtrl ($scope, $element, $mdUtil, $mdConstant, $mdTheming, * @returns {boolean} */ function shouldHide () { - if ((ctrl.loading && !hasMatches()) || hasSelection() || !hasFocus) { - return true; - } - - return !shouldShow(); + return (ctrl.loading && !hasMatches() || hasSelection() || !hasFocus) || !shouldShow(); } /** diff --git a/src/components/autocomplete/js/autocompleteDirective.js b/src/components/autocomplete/js/autocompleteDirective.js index 512f05d2a80..fa471a62f92 100644 --- a/src/components/autocomplete/js/autocompleteDirective.js +++ b/src/components/autocomplete/js/autocompleteDirective.js @@ -173,15 +173,15 @@ function MdAutocomplete () { \