aboutsummaryrefslogtreecommitdiffstats
path: root/ui/dialog.js
diff options
context:
space:
mode:
authorScott González <scott.gonzalez@gmail.com>2014-07-23 11:10:14 -0400
committerScott González <scott.gonzalez@gmail.com>2014-07-23 11:10:14 -0400
commit69f25dbff71d9864ce7ce46c47003413f8b7deb2 (patch)
tree66ae32ee8c4799e7e15e7ea419491db20e2e3941 /ui/dialog.js
parent1071346aea784e0f22c85f260499135f76482f9f (diff)
downloadjquery-ui-69f25dbff71d9864ce7ce46c47003413f8b7deb2.tar.gz
jquery-ui-69f25dbff71d9864ce7ce46c47003413f8b7deb2.zip
Dialog: Track the instance as soon as the dialog is opened
Fixes #10152
Diffstat (limited to 'ui/dialog.js')
-rw-r--r--ui/dialog.js15
1 files changed, 12 insertions, 3 deletions
diff --git a/ui/dialog.js b/ui/dialog.js
index 470676cbe..5561a96cd 100644
--- a/ui/dialog.js
+++ b/ui/dialog.js
@@ -273,6 +273,11 @@ return $.widget( "ui.dialog", {
that._trigger( "focus" );
});
+ // Track the dialog immediately upon openening in case a focus event
+ // somehow occurs outside of the dialog before an element inside the
+ // dialog is focused (#10152)
+ this._makeFocusTarget();
+
this._trigger( "open" );
},
@@ -584,14 +589,18 @@ return $.widget( "ui.dialog", {
_trackFocus: function() {
this._on( this.widget(), {
- "focusin": function( event ) {
- this._untrackInstance();
- this._trackingInstances().unshift( this );
+ focusin: function( event ) {
+ this._makeFocusTarget();
this._focusedElement = $( event.target );
}
});
},
+ _makeFocusTarget: function() {
+ this._untrackInstance();
+ this._trackingInstances().unshift( this );
+ },
+
_untrackInstance: function() {
var instances = this._trackingInstances(),
exists = $.inArray( this, instances );