From e179975995ab35a5963cc5a35bfe1b84f65bc013 Mon Sep 17 00:00:00 2001 From: jlukic Date: Mon, 18 May 2015 15:10:12 -0400 Subject: [PATCH] Add #2260 to next --- RELEASE-NOTES.md | 1 + src/definitions/modules/dropdown.js | 14 +++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index bec542eaa..0da3295a7 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -112,6 +112,7 @@ - **Checkbox** - Fixes nested `dropdown` inside `checkbox` causing issues - **Divider** - Hidden divider now correctly hides vertical dividers - **Divider** - Fixes single icon alignment inside `vertical divider` or `horizontal divider` +- **Dropdown** - `focus` after changing tabs will no longer cause menu to re-open **Thanks @trevorharwell** - **Dropdown** - Fixes issue with headers disappearing inside of `ui dropdown` when nested in `ui menu` - **Dropdown** - Fixes `onChange` to fire when input value changes, not just when menu UI changes - **Dropdown** - Dropdowns with `transition: none` now work correctly. diff --git a/src/definitions/modules/dropdown.js b/src/definitions/modules/dropdown.js index c60cb6465..b55bbd68e 100644 --- a/src/definitions/modules/dropdown.js +++ b/src/definitions/modules/dropdown.js @@ -67,6 +67,7 @@ $.fn.dropdown = function(parameters) { element = this, instance = $module.data(moduleNamespace), + pageLostFocus, elementNamespace, id, selectObserver, @@ -734,7 +735,7 @@ $.fn.dropdown = function(parameters) { event: { focus: function() { - if(settings.showOnFocus && !activated && module.is.hidden()) { + if(settings.showOnFocus && !activated && module.is.hidden() && !pageLostFocus) { module.show(); } }, @@ -748,9 +749,7 @@ $.fn.dropdown = function(parameters) { } }, blur: function(event) { - var - pageLostFocus = (document.activeElement === this) - ; + pageLostFocus = (document.activeElement === this); if(!activated && !pageLostFocus) { module.remove.activeLabel(); module.hide(); @@ -774,9 +773,7 @@ $.fn.dropdown = function(parameters) { } }, blur: function(event) { - var - pageLostFocus = (document.activeElement === this) - ; + pageLostFocus = (document.activeElement === this); if(!itemActivated && !pageLostFocus) { if(module.is.multiple()) { module.remove.activeLabel(); @@ -1214,6 +1211,9 @@ $.fn.dropdown = function(parameters) { }, determine: { + pageLostFocus: function() { + pageLostFocus = (document.activeElement === this); + }, selectAction: function(text, value) { module.verbose('Determining action', settings.action); if( $.isFunction( module.action[settings.action] ) ) {