diff --git a/demos/accordion/collapsible.html b/demos/accordion/collapsible.html index 85789e6c62..310e550a93 100644 --- a/demos/accordion/collapsible.html +++ b/demos/accordion/collapsible.html @@ -4,7 +4,7 @@ jQuery UI Accordion - Collapse content - + diff --git a/demos/accordion/custom-icons.html b/demos/accordion/custom-icons.html index 2351b9bb01..e2fc9bdb14 100644 --- a/demos/accordion/custom-icons.html +++ b/demos/accordion/custom-icons.html @@ -4,7 +4,7 @@ jQuery UI Accordion - Customize icons - + diff --git a/demos/accordion/default.html b/demos/accordion/default.html index 99f17df4d1..4afc2b129c 100644 --- a/demos/accordion/default.html +++ b/demos/accordion/default.html @@ -4,7 +4,7 @@ jQuery UI Accordion - Default functionality - + diff --git a/demos/accordion/fillspace.html b/demos/accordion/fillspace.html index bcbf6404d8..3a7d81edc9 100644 --- a/demos/accordion/fillspace.html +++ b/demos/accordion/fillspace.html @@ -4,7 +4,7 @@ jQuery UI Accordion - Fill space - + diff --git a/demos/accordion/hoverintent.html b/demos/accordion/hoverintent.html index e39fb6d521..09360d62da 100644 --- a/demos/accordion/hoverintent.html +++ b/demos/accordion/hoverintent.html @@ -4,7 +4,7 @@ jQuery UI Accordion - Open on hoverintent - + diff --git a/demos/accordion/mouseover.html b/demos/accordion/mouseover.html index bd19ddd4e6..6f4bc2e694 100644 --- a/demos/accordion/mouseover.html +++ b/demos/accordion/mouseover.html @@ -4,7 +4,7 @@ jQuery UI Accordion - Open on mouseover - + diff --git a/demos/accordion/no-auto-height.html b/demos/accordion/no-auto-height.html index e349d1a945..c51880b713 100644 --- a/demos/accordion/no-auto-height.html +++ b/demos/accordion/no-auto-height.html @@ -4,7 +4,7 @@ jQuery UI Accordion - No auto height - + diff --git a/demos/accordion/sortable.html b/demos/accordion/sortable.html index 0afa3057b1..a0a8993444 100644 --- a/demos/accordion/sortable.html +++ b/demos/accordion/sortable.html @@ -4,7 +4,7 @@ jQuery UI Accordion - Sortable - + diff --git a/demos/addClass/default.html b/demos/addClass/default.html index 7de7c56f5b..38acd8b4ca 100644 --- a/demos/addClass/default.html +++ b/demos/addClass/default.html @@ -4,7 +4,7 @@ jQuery UI Effects - addClass demo - + - + diff --git a/tests/visual/button/button_disabled_true.html b/tests/visual/button/button_disabled_true.html index 5284dc022a..ac21a56838 100644 --- a/tests/visual/button/button_disabled_true.html +++ b/tests/visual/button/button_disabled_true.html @@ -5,7 +5,7 @@ Button Visual Test : Button disabled true - + diff --git a/tests/visual/button/button_performance.html b/tests/visual/button/button_performance.html index 40d53d7743..439e2c1ae9 100644 --- a/tests/visual/button/button_performance.html +++ b/tests/visual/button/button_performance.html @@ -9,7 +9,7 @@ #toolbar { margin-top: 2em; padding:0.2em; } #ops1, #ops2, #format, #mode { margin-right: 1em } - + diff --git a/tests/visual/button/button_ticket_5254.html b/tests/visual/button/button_ticket_5254.html index ccd237f312..14d27698ad 100644 --- a/tests/visual/button/button_ticket_5254.html +++ b/tests/visual/button/button_ticket_5254.html @@ -5,7 +5,7 @@ Button Visual Test : Button ticket #5254 - + diff --git a/tests/visual/button/button_ticket_5261.html b/tests/visual/button/button_ticket_5261.html index ad92c7aa9e..0024393ee2 100644 --- a/tests/visual/button/button_ticket_5261.html +++ b/tests/visual/button/button_ticket_5261.html @@ -5,7 +5,7 @@ Button Visual Test : Button ticket #5261 - + diff --git a/tests/visual/button/button_ticket_5278.html b/tests/visual/button/button_ticket_5278.html index ac2c1cff0a..477a0b398b 100644 --- a/tests/visual/button/button_ticket_5278.html +++ b/tests/visual/button/button_ticket_5278.html @@ -5,7 +5,7 @@ Button Visual Test : Button ticket #5278 - + diff --git a/tests/visual/compound/accordion_dialog.html b/tests/visual/compound/accordion_dialog.html index e11a35098f..7b3b227edb 100644 --- a/tests/visual/compound/accordion_dialog.html +++ b/tests/visual/compound/accordion_dialog.html @@ -5,7 +5,7 @@ Compound Visual Test : Accordion in Dialog - + diff --git a/tests/visual/compound/accordion_tabs.html b/tests/visual/compound/accordion_tabs.html index f356179c9d..e98edaf7c5 100644 --- a/tests/visual/compound/accordion_tabs.html +++ b/tests/visual/compound/accordion_tabs.html @@ -5,7 +5,7 @@ Compound Visual Test : Accordion in Tabs - + diff --git a/tests/visual/compound/datepicker_dialog.html b/tests/visual/compound/datepicker_dialog.html index 1762e61089..0ef3f9bbc9 100644 --- a/tests/visual/compound/datepicker_dialog.html +++ b/tests/visual/compound/datepicker_dialog.html @@ -5,7 +5,7 @@ Compound Visual Test : Datepicker in Dialog - + diff --git a/tests/visual/compound/draggable_accordion.html b/tests/visual/compound/draggable_accordion.html index 634ffbe2dc..396d0e29ce 100644 --- a/tests/visual/compound/draggable_accordion.html +++ b/tests/visual/compound/draggable_accordion.html @@ -5,7 +5,7 @@ Compound Visual Test : Draggable in Accordion - + diff --git a/tests/visual/compound/draggable_accordion_accordion_tabs_draggable.html b/tests/visual/compound/draggable_accordion_accordion_tabs_draggable.html index 3f211b0464..a1199c8261 100644 --- a/tests/visual/compound/draggable_accordion_accordion_tabs_draggable.html +++ b/tests/visual/compound/draggable_accordion_accordion_tabs_draggable.html @@ -5,7 +5,7 @@ Compound Visual Test : Draggable in Accordion - + diff --git a/tests/visual/compound/sortable_accordion_sortable_tabs.html b/tests/visual/compound/sortable_accordion_sortable_tabs.html index c055016b62..02a6c0dec2 100644 --- a/tests/visual/compound/sortable_accordion_sortable_tabs.html +++ b/tests/visual/compound/sortable_accordion_sortable_tabs.html @@ -5,7 +5,7 @@ Compound Visual Test : Accordion in Tabs - + diff --git a/tests/visual/compound/tabs_tabs.html b/tests/visual/compound/tabs_tabs.html index 7398bef3ae..12515a4c5b 100644 --- a/tests/visual/compound/tabs_tabs.html +++ b/tests/visual/compound/tabs_tabs.html @@ -5,7 +5,7 @@ Compound Visual Test : Tabs in Tabs - + diff --git a/tests/visual/compound/tabs_tooltips.html b/tests/visual/compound/tabs_tooltips.html index d8d132a30c..38b85e58b7 100644 --- a/tests/visual/compound/tabs_tooltips.html +++ b/tests/visual/compound/tabs_tooltips.html @@ -5,7 +5,7 @@ Compound Visual Test : Tabs in Tabs - + diff --git a/tests/visual/compound/widgets_in_dialog.html b/tests/visual/compound/widgets_in_dialog.html index 999b67b0f7..b711efa9c1 100644 --- a/tests/visual/compound/widgets_in_dialog.html +++ b/tests/visual/compound/widgets_in_dialog.html @@ -5,7 +5,7 @@ Compound Visual Test : All Widgets in Dialog - + diff --git a/tests/visual/dialog/dialog_on_page_with_large_dom.html b/tests/visual/dialog/dialog_on_page_with_large_dom.html index 2a93071949..c7c1056968 100644 --- a/tests/visual/dialog/dialog_on_page_with_large_dom.html +++ b/tests/visual/dialog/dialog_on_page_with_large_dom.html @@ -5,7 +5,7 @@ Dialog Visual Test : Modal Dialog in Large DOM - + diff --git a/tests/visual/effects/effects.all.html b/tests/visual/effects/effects.all.html index 838e17a3c1..ddc6654376 100644 --- a/tests/visual/effects/effects.all.html +++ b/tests/visual/effects/effects.all.html @@ -4,7 +4,7 @@ jQuery UI Effects Test Suite - + diff --git a/tests/visual/effects/effects.scale.html b/tests/visual/effects/effects.scale.html index 2d35cee18b..845625e2e1 100644 --- a/tests/visual/effects/effects.scale.html +++ b/tests/visual/effects/effects.scale.html @@ -4,7 +4,7 @@ jQuery UI Effects Test Suite - + diff --git a/tests/visual/menu/drilldown.html b/tests/visual/menu/drilldown.html index 838583e88d..a2ae9e88ff 100644 --- a/tests/visual/menu/drilldown.html +++ b/tests/visual/menu/drilldown.html @@ -4,7 +4,7 @@ Menu Visual Test: Default - + diff --git a/tests/visual/menu/menu.html b/tests/visual/menu/menu.html index 80062a4234..50837f43e1 100644 --- a/tests/visual/menu/menu.html +++ b/tests/visual/menu/menu.html @@ -4,7 +4,7 @@ Menu Visual Test: Default - + diff --git a/tests/visual/menu/tablemenu.html b/tests/visual/menu/tablemenu.html index be1d064604..bce64bfb51 100644 --- a/tests/visual/menu/tablemenu.html +++ b/tests/visual/menu/tablemenu.html @@ -4,7 +4,7 @@ Menu Visual Test: Default - + diff --git a/tests/visual/position/position.html b/tests/visual/position/position.html index e28a6ae692..9d29abe284 100644 --- a/tests/visual/position/position.html +++ b/tests/visual/position/position.html @@ -5,7 +5,7 @@ Position Visual Test: Default - + diff --git a/tests/visual/position/position_fit.html b/tests/visual/position/position_fit.html index 73a683dced..78751d3efd 100644 --- a/tests/visual/position/position_fit.html +++ b/tests/visual/position/position_fit.html @@ -5,7 +5,7 @@ Position Visual Test: Fit - + diff --git a/tests/visual/position/position_flip.html b/tests/visual/position/position_flip.html index 766576fde4..7b26f6a9a5 100644 --- a/tests/visual/position/position_flip.html +++ b/tests/visual/position/position_flip.html @@ -5,7 +5,7 @@ Position Visual Test: Flip - + diff --git a/tests/visual/position/position_flipfit.html b/tests/visual/position/position_flipfit.html index edb1adecfd..b5cf82946b 100644 --- a/tests/visual/position/position_flipfit.html +++ b/tests/visual/position/position_flipfit.html @@ -5,7 +5,7 @@ Position Visual Test: FlipFit - + diff --git a/tests/visual/position/position_margin.html b/tests/visual/position/position_margin.html index 1e6608d915..52b8008374 100644 --- a/tests/visual/position/position_margin.html +++ b/tests/visual/position/position_margin.html @@ -5,7 +5,7 @@ Position Visual Test: Default - + diff --git a/tests/visual/position/position_within.html b/tests/visual/position/position_within.html index f348c5e8df..156c82e5dc 100644 --- a/tests/visual/position/position_within.html +++ b/tests/visual/position/position_within.html @@ -7,7 +7,7 @@ - + diff --git a/tests/visual/theme.html b/tests/visual/theme.html index d10f2444f3..131cc41d70 100644 --- a/tests/visual/theme.html +++ b/tests/visual/theme.html @@ -4,7 +4,7 @@ jQuery UI Example Page - + diff --git a/tests/visual/tooltip/animations.html b/tests/visual/tooltip/animations.html index b1ffc89146..993fbbd859 100644 --- a/tests/visual/tooltip/animations.html +++ b/tests/visual/tooltip/animations.html @@ -4,7 +4,7 @@ Tooltip Visual Test: Default - + diff --git a/tests/visual/tooltip/callout.html b/tests/visual/tooltip/callout.html index 3a498b2a65..79d8d32bfa 100644 --- a/tests/visual/tooltip/callout.html +++ b/tests/visual/tooltip/callout.html @@ -4,7 +4,7 @@ Tooltip Visual Test: Default - + diff --git a/tests/visual/tooltip/tooltip.html b/tests/visual/tooltip/tooltip.html index 5eb1ab0a78..b282a73b7b 100644 --- a/tests/visual/tooltip/tooltip.html +++ b/tests/visual/tooltip/tooltip.html @@ -4,7 +4,7 @@ Tooltip Visual Test: Default - + diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js index 9871b52d77..dbda2058ed 100644 --- a/ui/jquery.ui.autocomplete.js +++ b/ui/jquery.ui.autocomplete.js @@ -184,6 +184,7 @@ $.widget( "ui.autocomplete", { } clearTimeout( self.searching ); + self.cancelSearch = true; // clicks on the menu (or a button to trigger a search) will cause a blur event self.closing = setTimeout(function() { self.close( event ); @@ -373,6 +374,7 @@ $.widget( "ui.autocomplete", { _search: function( value ) { this.pending++; this.element.addClass( "ui-autocomplete-loading" ); + this.cancelSearch = false; this.source( { term: value }, this.response ); }, @@ -382,7 +384,7 @@ $.widget( "ui.autocomplete", { content = this._normalize( content ); } this._trigger( "response", null, { content: content } ); - if ( !this.options.disabled && content && content.length ) { + if ( !this.options.disabled && content && content.length && !this.cancelSearch ) { this._suggest( content ); this._trigger( "open" ); } else { diff --git a/ui/jquery.ui.datepicker.js b/ui/jquery.ui.datepicker.js index e09dc5a50e..45ddf8678e 100644 --- a/ui/jquery.ui.datepicker.js +++ b/ui/jquery.ui.datepicker.js @@ -799,9 +799,10 @@ $.extend(Datepicker.prototype, { if (this._datepickerShowing) { var showAnim = this._get(inst, 'showAnim'); var duration = this._get(inst, 'duration'); + var self = this; var postProcess = function() { $.datepicker._tidyDialog(inst); - this._curInst = null; + self._curInst = null; }; // DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed diff --git a/ui/jquery.ui.droppable.js b/ui/jquery.ui.droppable.js index 3942c6b8f4..62bba2abad 100644 --- a/ui/jquery.ui.droppable.js +++ b/ui/jquery.ui.droppable.js @@ -224,7 +224,7 @@ $.ui.ddmanager = { if(!this.options) return; if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) - dropped = dropped || this._drop.call(this, event); + dropped = this._drop.call(this, event) || dropped; if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { this.isout = 1; this.isover = 0; diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js index bf36a77fe7..4fe859f4ea 100644 --- a/ui/jquery.ui.menu.js +++ b/ui/jquery.ui.menu.js @@ -40,16 +40,6 @@ $.widget( "ui.menu", { id: this.menuId, role: "menu" }) - // Prevent focus from sticking to links inside menu after clicking - // them (focus should always stay on UL during navigation). - // If the link is clicked, redirect focus to the menu. - // TODO move to _bind below - .bind( "mousedown.menu", function( event ) { - if ( $( event.target).is( "a" ) ) { - event.preventDefault(); - $( this ).focus( 1 ); - } - }) // need to catch all clicks on disabled menu // not possible through _bind .bind( "click.menu", $.proxy( function( event ) { @@ -58,6 +48,11 @@ $.widget( "ui.menu", { } }, this)); this._bind({ + // Prevent focus from sticking to links inside menu after clicking + // them (focus should always stay on UL during navigation). + "mousedown .ui-menu-item > a": function( event ) { + event.preventDefault(); + }, "click .ui-menu-item:has(a)": function( event ) { event.stopImmediatePropagation(); var target = $( event.currentTarget ); @@ -66,6 +61,8 @@ $.widget( "ui.menu", { this.focus( event, target ); } this.select( event ); + // Redirect focus to the menu. + this.element.focus(); }, "mouseover .ui-menu-item": function( event ) { event.stopImmediatePropagation(); diff --git a/ui/jquery.ui.selectable.js b/ui/jquery.ui.selectable.js index d7b24d4e39..408771eff7 100644 --- a/ui/jquery.ui.selectable.js +++ b/ui/jquery.ui.selectable.js @@ -104,7 +104,7 @@ $.widget("ui.selectable", $.ui.mouse, { this.selectees.filter('.ui-selected').each(function() { var selectee = $.data(this, "selectable-item"); selectee.startselected = true; - if (!event.metaKey) { + if (!event.metaKey && !event.ctrlKey) { selectee.$element.removeClass('ui-selected'); selectee.selected = false; selectee.$element.addClass('ui-unselecting'); @@ -119,7 +119,7 @@ $.widget("ui.selectable", $.ui.mouse, { $(event.target).parents().andSelf().each(function() { var selectee = $.data(this, "selectable-item"); if (selectee) { - var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected'); + var doSelect = (!event.metaKey && !event.ctrlKey) || !selectee.$element.hasClass('ui-selected'); selectee.$element .removeClass(doSelect ? "ui-unselecting" : "ui-selected") .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); @@ -189,7 +189,7 @@ $.widget("ui.selectable", $.ui.mouse, { } else { // UNSELECT if (selectee.selecting) { - if (event.metaKey && selectee.startselected) { + if ((event.metaKey || event.ctrlKey) && selectee.startselected) { selectee.$element.removeClass('ui-selecting'); selectee.selecting = false; selectee.$element.addClass('ui-selected'); @@ -208,7 +208,7 @@ $.widget("ui.selectable", $.ui.mouse, { } } if (selectee.selected) { - if (!event.metaKey && !selectee.startselected) { + if (!event.metaKey && !event.ctrlKey && !selectee.startselected) { selectee.$element.removeClass('ui-selected'); selectee.selected = false; diff --git a/ui/jquery.ui.widget.js b/ui/jquery.ui.widget.js index 53cde389e2..4f47a008b0 100644 --- a/ui/jquery.ui.widget.js +++ b/ui/jquery.ui.widget.js @@ -374,37 +374,31 @@ $.Widget.prototype = { }, _trigger: function( type, event, data ) { - var callback = this.options[ type ], - args; + var prop, orig, + callback = this.options[ type ]; + data = data || {}; event = $.Event( event ); event.type = ( type === this.widgetEventPrefix ? type : this.widgetEventPrefix + type ).toLowerCase(); - data = data || {}; + // the original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; // copy original event properties over to the new event - // this would happen if we could call $.event.fix instead of $.Event - // but we don't have a way to force an event to be fixed multiple times - if ( event.originalEvent ) { - for ( var i = $.event.props.length, prop; i; ) { - prop = $.event.props[ --i ]; - event[ prop ] = event.originalEvent[ prop ]; + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } } } - // the original event may come from any element - // so we need to reset the target on the new event - event.target = this.element[0]; - this.element.trigger( event, data ); - - args = $.isArray( data ) ? - [ event ].concat( data ) : - [ event, data ]; - return !( $.isFunction( callback ) && - callback.apply( this.element[0], args ) === false || + callback.apply( this.element[0], [ event ].concat( data ) ) === false || event.isDefaultPrevented() ); } };