diff --git a/AUTHORS.txt b/AUTHORS.txt
index 637175b76..b2168655e 100644
--- a/AUTHORS.txt
+++ b/AUTHORS.txt
@@ -1,8 +1,8 @@
-jQuery UI Authors (http://ui.jquery.com/about)
+jQuery UI Authors (http://jqueryui.com/about)
This software consists of voluntary contributions made by many
individuals. For exact contribution history, see the revision history
-and logs, available at http://jquery-ui.googlecode.com/svn/
+and logs, available at http://github.com/jquery/jquery-ui
Brandon Aaron
Paul Bakaus (paulbakaus.com)
diff --git a/demos/autocomplete/combobox.html b/demos/autocomplete/combobox.html
index e5dc6c92b..4c6b656a1 100644
--- a/demos/autocomplete/combobox.html
+++ b/demos/autocomplete/combobox.html
@@ -33,7 +33,7 @@
if (!request.term || matcher.test(text))
return {
id: $(this).val(),
- label: text.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + request.term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "$1"),
+ label: text.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(request.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "$1"),
value: text
};
}));
diff --git a/demos/autocomplete/remote.html b/demos/autocomplete/remote.html
index 3b0d7096d..9414102e6 100644
--- a/demos/autocomplete/remote.html
+++ b/demos/autocomplete/remote.html
@@ -18,7 +18,6 @@
}
$("#birds").autocomplete({
- // TODO doesn't work when loaded from /demos/#autocomplete|remote
source: "search.php",
minLength: 2,
select: function(event, ui) {
diff --git a/external/qunit.js b/external/qunit.js
index f2704148e..41e6c82f5 100644
--- a/external/qunit.js
+++ b/external/qunit.js
@@ -18,6 +18,7 @@ var QUnit = {
stats: { all: 0, bad: 0 },
moduleStats: { all: 0, bad: 0 },
started: +new Date,
+ updateRate: 1000,
blocking: false,
autorun: false,
assertions: [],
@@ -590,8 +591,16 @@ function synchronize( callback ) {
}
function process() {
+ var start = (new Date()).getTime();
+
while ( config.queue.length && !config.blocking ) {
- config.queue.shift()();
+ if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) {
+ config.queue.shift()();
+
+ } else {
+ setTimeout( process, 13 );
+ break;
+ }
}
}
@@ -679,6 +688,7 @@ QUnit.equiv = function () {
var innerEquiv; // the real equiv function
var callers = []; // stack to decide between skip/abort functions
+ var parents = []; // stack to avoiding loops from circular referencing
// Determine what is o.
@@ -788,28 +798,39 @@ QUnit.equiv = function () {
},
"array": function (b, a) {
- var i;
+ var i, j, loop;
var len;
// b could be an object literal here
if ( ! (hoozit(b) === "array")) {
return false;
- }
-
+ }
+
len = a.length;
if (len !== b.length) { // safe and faster
return false;
}
+
+ //track reference to avoid circular references
+ parents.push(a);
for (i = 0; i < len; i++) {
- if ( ! innerEquiv(a[i], b[i])) {
+ loop = false;
+ for(j=0;j
+
diff --git a/tests/unit/testsuite.js b/tests/unit/testsuite.js
index 67b980d18..9a16e9d0c 100644
--- a/tests/unit/testsuite.js
+++ b/tests/unit/testsuite.js
@@ -45,5 +45,5 @@ function commonWidgetTests(widget, settings) {
if ( !url || url.indexOf("http") !== 0 ) {
return;
}
- document.write("");
+ document.write("");
})();
diff --git a/tests/visual/menu/drilldown.html b/tests/visual/menu/drilldown.html
index 78b8cf9f2..a97d8322c 100644
--- a/tests/visual/menu/drilldown.html
+++ b/tests/visual/menu/drilldown.html
@@ -14,7 +14,7 @@
$.widget("ui.drilldown", {
_init: function() {
var self = this;
- this.active = this.element;
+ this.active = this.element.find(">ul").attr("tabindex", 0);
// hide submenus and create indicator icons
this.element.find("ul").hide().prev("a").prepend('').end().filter(":first").show();
@@ -84,17 +84,21 @@
parent.parent().removeData("submenu");
submenu = submenu.data("submenu");
};
+ },
+
+ widget: function() {
+ return this.element.find(">ul");
}
});
- var nestedmenu = $("#drilldown").drilldown({
+ var drilldown = $("#drilldown").drilldown({
selected: function(event, ui) {
$("#log").append("
Selected " + ui.item.text() + "
");
}
});
- $().keydown(function(event) {
- var menu = nestedmenu.data("drilldown").active.data("menu");
+ drilldown.drilldown("widget").keydown(function(event) {
+ var menu = drilldown.data("drilldown").active.data("menu");
if (menu.widget().is(":hidden"))
return;
event.stopPropagation();
@@ -109,10 +113,10 @@
menu.previous();
break;
case $.ui.keyCode.LEFT:
- nestedmenu.nestedmenu("up");
+ drilldown.drilldown("up");
break;
case $.ui.keyCode.RIGHT:
- nestedmenu.nestedmenu("down");
+ drilldown.drilldown("down");
break;
case $.ui.keyCode.DOWN:
menu.next();
@@ -121,11 +125,11 @@
case $.ui.keyCode.ENTER:
case $.ui.keyCode.TAB:
menu.select();
- nestedmenu.nestedmenu("hide");
+ drilldown.drilldown("hide");
event.preventDefault();
break;
case $.ui.keyCode.ESCAPE:
- nestedmenu.nestedmenu("hide");
+ drilldown.drilldown("hide");
break;
default:
clearTimeout(menu.filterTimer);
diff --git a/tests/visual/menu/drilldown2.html b/tests/visual/menu/drilldown2.html
new file mode 100644
index 000000000..0c18c3679
--- /dev/null
+++ b/tests/visual/menu/drilldown2.html
@@ -0,0 +1,235 @@
+
+
+
+ Menu Visual Test: Default
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Make a selection...
+
+
Go back
+
+
+
+
+
+
diff --git a/tests/visual/menu/nested.html b/tests/visual/menu/nested.html
index a332e2440..96a0379d3 100644
--- a/tests/visual/menu/nested.html
+++ b/tests/visual/menu/nested.html
@@ -106,11 +106,16 @@
$("button").click(function(event) {
// TODO required to prevent the click handler below from handling this event
event.stopPropagation();
- nestedmenu.nestedmenu("show").position({
- my: "left top",
- at: "right top",
- of: event.pageX > 0 ? event : this
- });
+ nestedmenu.nestedmenu("show")
+ .css({
+ top: 0,
+ left: 0
+ })
+ .position({
+ my: "left top",
+ at: "right top",
+ of: this
+ });
$(document).one("click", function() {
nestedmenu.nestedmenu("hide");
})
diff --git a/tests/visual/menu/nested2.html b/tests/visual/menu/nested2.html
new file mode 100644
index 000000000..063b946c7
--- /dev/null
+++ b/tests/visual/menu/nested2.html
@@ -0,0 +1,236 @@
+
+
+
+ Menu Visual Test: Default
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/themes/base/jquery.ui.autocomplete.css b/themes/base/jquery.ui.autocomplete.css
index bdd41e1b7..9c9ca7584 100644
--- a/themes/base/jquery.ui.autocomplete.css
+++ b/themes/base/jquery.ui.autocomplete.css
@@ -20,6 +20,9 @@
.ui-menu .ui-menu-item {
margin:0;
padding: 0;
+ zoom: 1;
+ float: left;
+ clear: left;
width: 100%;
}
.ui-menu .ui-menu-item a {
diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js
index fab7a6287..a1d798c59 100644
--- a/ui/jquery.ui.autocomplete.js
+++ b/ui/jquery.ui.autocomplete.js
@@ -70,7 +70,7 @@ $.widget( "ui.autocomplete", {
case keyCode.RIGHT:
case keyCode.SHIFT:
case keyCode.CONTROL:
- case 18:
+ case keyCode.ALT:
// ignore metakeys (shift, ctrl, alt)
break;
default:
@@ -140,7 +140,7 @@ $.widget( "ui.autocomplete", {
destroy: function() {
this.element
- .removeClass( "ui-autocomplete-input ui-widget ui-widget-content" )
+ .removeClass( "ui-autocomplete-input" )
.removeAttr( "autocomplete" )
.removeAttr( "role" )
.removeAttr( "aria-autocomplete" )
@@ -335,7 +335,7 @@ $.widget("ui.menu", {
"aria-activedescendant": "ui-active-menuitem"
})
.click(function( event ) {
- if ( !$( event.target ).closest( ".ui-menu-item" ).length ) {
+ if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) {
return;
}
// temporary
diff --git a/ui/jquery.ui.core.js b/ui/jquery.ui.core.js
index e0e1727ee..197a1aba9 100644
--- a/ui/jquery.ui.core.js
+++ b/ui/jquery.ui.core.js
@@ -70,6 +70,7 @@ $.ui = {
},
keyCode: {
+ ALT: 18,
BACKSPACE: 8,
CAPS_LOCK: 20,
COMMA: 188,
diff --git a/ui/jquery.ui.dialog.js b/ui/jquery.ui.dialog.js
index 0291c3da0..6e538b6e5 100644
--- a/ui/jquery.ui.dialog.js
+++ b/ui/jquery.ui.dialog.js
@@ -622,8 +622,11 @@ $.widget("ui.dialog", {
// reset content sizing
// hide for non content measurement because height: 0 doesn't work in IE quirks mode (see #4350)
- this.element.css('width', 'auto')
- .hide();
+ this.element.css({
+ width: 'auto',
+ minHeight: 0,
+ height: 0
+ });
// reset wrapper sizing
// determine the height of all the non-content elements