Skip to content

Commit

Permalink
Button: Remove obsolete mouse click coordinates checking. Fixed #7665…
Browse files Browse the repository at this point in the history
… - Button: Radio button & checkboxes ignore mouseclicks for minor mouse movements.

(cherry picked from commit 8b64322)
  • Loading branch information
Fabrício Matté authored and scottgonzalez committed Nov 26, 2013
1 parent d21e8a6 commit 52e0f76
Showing 1 changed file with 3 additions and 26 deletions.
29 changes: 3 additions & 26 deletions ui/jquery.ui.button.js
Expand Up @@ -14,7 +14,7 @@
*/
(function( $, undefined ) {

var lastActive, startXPos, startYPos, clickDragged,
var lastActive,
baseClasses = "ui-button ui-widget ui-state-default ui-corner-all",
typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",
formResetHandler = function() {
Expand Down Expand Up @@ -115,42 +115,19 @@ $.widget( "ui.button", {

if ( toggleButton ) {
this.element.bind( "change" + this.eventNamespace, function() {
if ( clickDragged ) {
return;
}
that.refresh();
});
// if mouse moves between mousedown and mouseup (drag) set clickDragged flag
// prevents issue where button state changes but checkbox/radio checked state
// does not in Firefox (see ticket #6970)
this.buttonElement
.bind( "mousedown" + this.eventNamespace, function( event ) {
if ( options.disabled ) {
return;
}
clickDragged = false;
startXPos = event.pageX;
startYPos = event.pageY;
})
.bind( "mouseup" + this.eventNamespace, function( event ) {
if ( options.disabled ) {
return;
}
if ( startXPos !== event.pageX || startYPos !== event.pageY ) {
clickDragged = true;
}
});
}

if ( this.type === "checkbox" ) {
this.buttonElement.bind( "click" + this.eventNamespace, function() {
if ( options.disabled || clickDragged ) {
if ( options.disabled ) {
return false;
}
});
} else if ( this.type === "radio" ) {
this.buttonElement.bind( "click" + this.eventNamespace, function() {
if ( options.disabled || clickDragged ) {
if ( options.disabled ) {
return false;
}
$( this ).addClass( "ui-state-active" );
Expand Down

0 comments on commit 52e0f76

Please sign in to comment.