Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Draggable: Only blur the focused element if the event occurs on a handle
Fixes #10527
  • Loading branch information
tjvantoll authored and mikesherov committed Aug 17, 2014
1 parent b5846be commit 075421d
Showing 1 changed file with 23 additions and 13 deletions.
36 changes: 23 additions & 13 deletions ui/draggable.js
Expand Up @@ -94,20 +94,9 @@ $.widget("ui.draggable", $.ui.mouse, {
},

_mouseCapture: function(event) {
var o = this.options;

var document = this.document[ 0 ],
o = this.options;

// support: IE9
// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
try {
// Support: IE9+
// If the <body> is blurred, IE will switch windows, see #9520
if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) {
// Blur any element that currently has focus, see #4261
$( document.activeElement ).blur();
}
} catch ( error ) {}
this._blurActiveElement( event );

// among others, prevent a drag on a resizable-handle
if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) {
Expand All @@ -134,6 +123,27 @@ $.widget("ui.draggable", $.ui.mouse, {

},

_blurActiveElement: function() {
var document = this.document[ 0 ];

// support: IE9
// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
try {

// Support: IE9, IE10
// If the <body> is blurred, IE will switch windows, see #9520
if ( document.activeElement && document.activeElement.nodeName.toLowerCase() !== "body" ) {

// Only need to blur if the event occurred on the draggable, see #10527
if ( this.handleElement.is( event.target ) ) {

// Blur any element that currently has focus, see #4261
$( document.activeElement ).blur();
}
}
} catch ( error ) {}
},

_mouseStart: function(event) {

var o = this.options;
Expand Down

0 comments on commit 075421d

Please sign in to comment.