aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build/build.xml6
-rw-r--r--tests/unit/autocomplete/autocomplete_core.js86
-rw-r--r--tests/unit/dialog/dialog_options.js13
-rw-r--r--tests/unit/selectmenu/selectmenu_events.js6
-rw-r--r--tests/unit/selectmenu/selectmenu_options.js23
-rw-r--r--tests/visual/selectmenu/autocomplete.html94
-rw-r--r--tests/visual/selectmenu/compatibility .html (renamed from tests/visual/selectmenu/tabs.html)59
-rw-r--r--tests/visual/selectmenu/dialog.html72
-rw-r--r--tests/visual/selectmenu/events.html2
-rw-r--r--tests/visual/selectmenu/methods.html2
-rw-r--r--tests/visual/selectmenu/option.html2
-rw-r--r--tests/visual/selectmenu/themeswitcher.html104
-rw-r--r--themes/base/jquery.ui.button.css2
-rw-r--r--themes/base/jquery.ui.dialog.css2
-rw-r--r--ui/jquery.ui.autocomplete.js26
-rw-r--r--ui/jquery.ui.dialog.js2
-rw-r--r--ui/jquery.ui.menu.js20
17 files changed, 310 insertions, 211 deletions
diff --git a/build/build.xml b/build/build.xml
index 49568b3cc..ddaa5b86d 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -123,6 +123,12 @@
<mapper type="glob" from="*.js" to="${min.dir}/*.min.js" />
<targetfile/>
</apply>
+ <apply executable="build/minify-js.sh">
+ <fileset dir="${dist.dir}/ui/i18n" includes="**.js" />
+ <srcfile />
+ <mapper type="glob" from="*.js" to="${min.dir}/i18n/*.min.js" />
+ <targetfile/>
+ </apply>
<apply executable="java" parallel="false">
<fileset dir="${dist.dir}/themes/base" includes="*.css" />
<arg line="-jar" />
diff --git a/tests/unit/autocomplete/autocomplete_core.js b/tests/unit/autocomplete/autocomplete_core.js
index 3f92aa01f..d98f56abf 100644
--- a/tests/unit/autocomplete/autocomplete_core.js
+++ b/tests/unit/autocomplete/autocomplete_core.js
@@ -80,4 +80,90 @@ test( "allow form submit on enter when menu is not active", function() {
ok( !event.isDefaultPrevented(), "default action is prevented" );
});
+(function() {
+ test( "up arrow invokes search - input", function() {
+ arrowsInvokeSearch( "#autocomplete", true, true );
+ });
+
+ test( "down arrow invokes search - input", function() {
+ arrowsInvokeSearch( "#autocomplete", false, true );
+ });
+
+ test( "up arrow invokes search - textarea", function() {
+ arrowsInvokeSearch( "#autocomplete-textarea", true, false );
+ });
+
+ test( "down arrow invokes search - textarea", function() {
+ arrowsInvokeSearch( "#autocomplete-textarea", false, false );
+ });
+
+ test( "up arrow invokes search - contenteditable", function() {
+ arrowsInvokeSearch( "#autocomplete-contenteditable", true, false );
+ });
+
+ test( "down arrow invokes search - contenteditable", function() {
+ arrowsInvokeSearch( "#autocomplete-contenteditable", false, false );
+ });
+
+ test( "up arrow moves focus - input", function() {
+ arrowsMoveFocus( "#autocomplete", true );
+ });
+
+ test( "down arrow moves focus - input", function() {
+ arrowsMoveFocus( "#autocomplete", false );
+ });
+
+ test( "up arrow moves focus - textarea", function() {
+ arrowsMoveFocus( "#autocomplete-textarea", true );
+ });
+
+ test( "down arrow moves focus - textarea", function() {
+ arrowsMoveFocus( "#autocomplete-textarea", false );
+ });
+
+ test( "up arrow moves focus - contenteditable", function() {
+ arrowsMoveFocus( "#autocomplete-contenteditable", true );
+ });
+
+ test( "down arrow moves focus - contenteditable", function() {
+ arrowsMoveFocus( "#autocomplete-contenteditable", false );
+ });
+
+ function arrowsInvokeSearch( id, isKeyUp, shouldMove ) {
+ expect( 1 );
+
+ var didMove = false,
+ element = $( id ).autocomplete({
+ source: [ "a" ],
+ delay: 0,
+ minLength: 0
+ });
+ element.data( "autocomplete" )._move = function() {
+ didMove = true;
+ };
+ element.simulate( "keydown", { keyCode: ( isKeyUp ? $.ui.keyCode.UP : $.ui.keyCode.DOWN ) } );
+ equal( didMove, shouldMove, "respond to arrow" );
+ }
+
+ function arrowsMoveFocus( id, isKeyUp ) {
+ expect( 1 );
+
+ var didMove = false,
+ element = $( id ).autocomplete({
+ source: [ "a" ],
+ delay: 0,
+ minLength: 0
+ });
+ element.data( "autocomplete" )._move = function() {
+ ok( true, "repsond to arrow" );
+ };
+ element.autocomplete( "search" );
+ element.simulate( "keydown", { keyCode: ( isKeyUp ? $.ui.keyCode.UP : $.ui.keyCode.DOWN ) } );
+ }
+})();
+
+(function() {
+
+})();
+
}( jQuery ) );
diff --git a/tests/unit/dialog/dialog_options.js b/tests/unit/dialog/dialog_options.js
index eab577c69..264c2fb6e 100644
--- a/tests/unit/dialog/dialog_options.js
+++ b/tests/unit/dialog/dialog_options.js
@@ -177,19 +177,24 @@ test("draggable", function() {
});
test("height", function() {
- expect(3);
+ expect(4);
el = $('<div></div>').dialog();
- equals(dlg().height(), 150, "default height");
+ equals(dlg().outerHeight(), 150, "default height");
el.remove();
el = $('<div></div>').dialog({ height: 237 });
- equals(dlg().height(), 237, "explicit height");
+ equals(dlg().outerHeight(), 237, "explicit height");
el.remove();
el = $('<div></div>').dialog();
el.dialog('option', 'height', 238);
- equals(dlg().height(), 238, "explicit height set after init");
+ equals(dlg().outerHeight(), 238, "explicit height set after init");
+ el.remove();
+
+ el = $('<div></div>').css("padding", "20px")
+ .dialog({ height: 240 });
+ equals(dlg().outerHeight(), 240, "explicit height with padding");
el.remove();
});
diff --git a/tests/unit/selectmenu/selectmenu_events.js b/tests/unit/selectmenu/selectmenu_events.js
index ec4d3ff25..fa25e69bb 100644
--- a/tests/unit/selectmenu/selectmenu_events.js
+++ b/tests/unit/selectmenu/selectmenu_events.js
@@ -14,12 +14,14 @@
ok(event, "change event fired on change");
equals(event.type, "selectmenuchange", "event type set to selectmenuchange");
ok(ui, "ui object is passed as second argument to event handler");
- equals(ui.item.element[0].nodeName, "OPTION", "ui points to original option element");
+ equals(ui.item.element[0].nodeName, "OPTION", "ui.item.element[0] points to original option element");
+ equals(ui.item.value, value, "ui.item.value property updated correctly");
}
});
var widget = this.element.selectmenu("widget"),
- menu = widget.filter(".ui-selectmenu-menu");
+ menu = widget.filter(".ui-selectmenu-menu"),
+ value = this.element.find("option").eq(0).text();
menu.find(".ui-menu-item").eq(0).simulate("click");
diff --git a/tests/unit/selectmenu/selectmenu_options.js b/tests/unit/selectmenu/selectmenu_options.js
index e6a057ac0..913d1b4c9 100644
--- a/tests/unit/selectmenu/selectmenu_options.js
+++ b/tests/unit/selectmenu/selectmenu_options.js
@@ -14,8 +14,21 @@
ok($("#qunit-fixture").find(".ui-selectmenu-menu").length, "selectmenu appendedTo other element");
});
- test("dropdown false", function () {
- expect(1);
+ test("dropdown", function () {
+ expect(2);
+
+ var button = $("#speed-button"),
+ widget = this.element.selectmenu("widget"),
+ buttonPos = {
+ l: button.offset().top,
+ t: button.offset().left
+ },
+ menuPos = {
+ l: widget.offset().top,
+ t: widget.offset().left
+ };
+
+ equals(menuPos.t, buttonPos.t, "menu positioned below button in dropdown mode"); //button has no height
ok(this.element.selectmenu("option", "dropdown", false), "accepts false");
});
@@ -23,9 +36,11 @@
test("value option", function () {
expect(1);
- this.element.selectmenu("option", "value", "jQuery UI");
+ var value = this.element.find("option").eq(0).text();
+
+ this.element.selectmenu("option", "value", value);
- equals(this.element.selectmenu("option", "value"), "jQuery UI", "should be set to 'jQuery UI'");
+ equals(this.element.selectmenu("option", "value"), value, "should be set to " + value);
});
})(jQuery);
diff --git a/tests/visual/selectmenu/autocomplete.html b/tests/visual/selectmenu/autocomplete.html
deleted file mode 100644
index b9c161699..000000000
--- a/tests/visual/selectmenu/autocomplete.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="utf-8">
- <title>jQuery UI Selectmenu - Event functionality</title>
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
- <script src="../../../jquery-1.7.1.js"></script>
- <script src="../../../ui/jquery.ui.core.js"></script>
- <script src="../../../ui/jquery.ui.widget.js"></script>
- <script src="../../../ui/jquery.ui.position.js"></script>
- <script src="../../../ui/jquery.ui.autocomplete.js"></script>
- <script src="../../../ui/jquery.ui.button.js"></script>
- <script src="../../../ui/jquery.ui.menu.js"></script>
- <script src="../../../ui/jquery.ui.selectmenu.js"></script>
- <link rel="stylesheet" href="../../../demos/demos.css">
- <script>
- $(function() {
- $('select#speed').selectmenu();
-
- var availableTags = [
- "ActionScript",
- "AppleScript",
- "Asp",
- "BASIC",
- "C",
- "C++",
- "Clojure",
- "COBOL",
- "ColdFusion",
- "Erlang",
- "Fortran",
- "Groovy",
- "Haskell",
- "Java",
- "JavaScript",
- "Lisp",
- "Perl",
- "PHP",
- "Python",
- "Ruby",
- "Scala",
- "Scheme"
- ];
- $( "#tags" ).autocomplete({
- source: availableTags
- });
- });
- </script>
- <style>
- form { margin: 20px 0 0 0 }
- fieldset { border: 0; }
- label { display: block; }
- select { width: 200px; }
- </style>
-</head>
-<body>
-
-<div class="demo">
-
-
-<form action="#">
- <fieldset>
- <label for="speed">Select a speed:</label>
- <select name="speed" id="speed">
- <option value="Slower">Slower</option>
- <option value="Slow">Slow</option>
- <option value="Medium" selected="selected">Medium</option>
- <option value="Fast">Fast</option>
- <option value="Faster">Faster</option>
- </select>
- </fieldset>
-</form>
-
-<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-<br />
-
-<div class="ui-widget">
- <label for="tags">Tags: </label>
- <input id="tags">
-</div>
-
-</div><!-- End demo -->
-
-
-
-</body>
-</html>
diff --git a/tests/visual/selectmenu/tabs.html b/tests/visual/selectmenu/compatibility .html
index 658da8a20..a99a629df 100644
--- a/tests/visual/selectmenu/tabs.html
+++ b/tests/visual/selectmenu/compatibility .html
@@ -2,21 +2,52 @@
<html lang="en">
<head>
<meta charset="utf-8">
- <title>jQuery UI Selectmenu - Event functionality</title>
+ <title>jQuery UI Selectmenu - Compatibility with other widgets</title>
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
<script src="../../../jquery-1.7.1.js"></script>
<script src="../../../ui/jquery.ui.core.js"></script>
<script src="../../../ui/jquery.ui.widget.js"></script>
<script src="../../../ui/jquery.ui.position.js"></script>
<script src="../../../ui/jquery.ui.tabs.js"></script>
+ <script src="../../../ui/jquery.ui.dialog.js"></script>
+ <script src="../../../ui/jquery.ui.autocomplete.js"></script>
<script src="../../../ui/jquery.ui.button.js"></script>
<script src="../../../ui/jquery.ui.menu.js"></script>
<script src="../../../ui/jquery.ui.selectmenu.js"></script>
<link rel="stylesheet" href="../../../demos/demos.css">
<script>
$(function() {
- $( "#tabs" ).tabs();
$('select').selectmenu();
+
+ var availableTags = [
+ "ActionScript",
+ "AppleScript",
+ "Asp",
+ "BASIC",
+ "C",
+ "C++",
+ "Clojure",
+ "COBOL",
+ "ColdFusion",
+ "Erlang",
+ "Fortran",
+ "Groovy",
+ "Haskell",
+ "Java",
+ "JavaScript",
+ "Lisp",
+ "Perl",
+ "PHP",
+ "Python",
+ "Ruby",
+ "Scala",
+ "Scheme"
+ ];
+ $( "#tags" ).autocomplete({
+ source: availableTags
+ });
+ $( "#tabs" ).tabs();
+ $( "#dialog" ).dialog();
});
</script>
<style>
@@ -24,17 +55,22 @@
fieldset { border: 0; }
label { display: block; }
select { width: 200px; }
+ #tabs { margin: 50px 0 0 0 }
</style>
</head>
<body>
<div class="demo">
+<div class="ui-widget">
+ <label for="tags">Tags: </label>
+ <input id="tags">
+</div>
<div id="tabs">
<ul>
<li><a href="#tabs-1">Nunc tincidunt</a></li>
- <li><a href="#tabs-2">Proin dolor</a></li>
+ <li><a href="#tabs-2">Selectmenu</a></li>
<li><a href="#tabs-3">Aenean lacinia</a></li>
</ul>
<div id="tabs-1">
@@ -60,6 +96,23 @@
</div>
</div>
+<div id="dialog" title="Basic dialog">
+ <p>Some example content</p>
+ <p><a href="#nogo">Test Link</a></p>
+ <form action="#">
+ <fieldset>
+ <label for="speed">Select a speed:</label>
+ <select name="speed" id="speed">
+ <option value="Slower">Slower</option>
+ <option value="Slow">Slow</option>
+ <option value="Medium" selected="selected">Medium</option>
+ <option value="Fast">Fast</option>
+ <option value="Faster">Faster</option>
+ </select>
+ </fieldset>
+ </form>
+</div>
+
</div><!-- End demo -->
diff --git a/tests/visual/selectmenu/dialog.html b/tests/visual/selectmenu/dialog.html
deleted file mode 100644
index f80083933..000000000
--- a/tests/visual/selectmenu/dialog.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="utf-8">
- <title>jQuery UI Selectmenu - Event functionality</title>
- <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
- <script src="../../../jquery-1.7.1.js"></script>
- <script src="../../../ui/jquery.ui.core.js"></script>
- <script src="../../../ui/jquery.ui.widget.js"></script>
- <script src="../../../ui/jquery.ui.position.js"></script>
- <script src="../../../ui/jquery.ui.dialog.js"></script>
- <script src="../../../ui/jquery.ui.button.js"></script>
- <script src="../../../ui/jquery.ui.menu.js"></script>
- <script src="../../../ui/jquery.ui.selectmenu.js"></script>
- <link rel="stylesheet" href="../../../demos/demos.css">
- <script>
- $(function() {
- $('select#speed').selectmenu();
-
- $( "#dialog" ).dialog();
- });
- </script>
- <style>
- form { margin: 20px 0 0 0 }
- fieldset { border: 0; }
- label { display: block; }
- select { width: 200px; }
- </style>
-</head>
-<body>
-
-<div class="demo">
-
-
-<div id="dialog" title="Basic dialog">
- <p>Some example content</p>
- <p><a href="#nogo">Test Link</a></p>
- <form action="#">
- <fieldset>
- <label for="speed">Select a speed:</label>
- <select name="speed" id="speed">
- <option value="Slower">Slower</option>
- <option value="Slow">Slow</option>
- <option value="Medium" selected="selected">Medium</option>
- <option value="Fast">Fast</option>
- <option value="Faster">Faster</option>
- </select>
- </fieldset>
- </form>
-</div>
-
-<!-- Sample page content to illustrate the layering of the dialog -->
-<div class="hiddenInViewSource" style="padding:20px;">
-<p>Sed vel diam id libero <a href="http://example.com">rutrum convallis</a>. Donec aliquet leo vel magna. Phasellus rhoncus faucibus ante. Etiam bibendum, enim faucibus aliquet rhoncus, arcu felis ultricies neque, sit amet auctor elit eros a lectus.</p>
-<form>
- <input value="text input" /><br />
- <input type="checkbox" />checkbox<br />
- <input type="radio" />radio<br />
- <select>
- <option>select</option>
- </select><br /><br />
- <textarea>textarea</textarea><br />
-</form>
-</div><!-- End sample page content -->
-
-
-</div><!-- End demo -->
-
-
-
-</body>
-</html>
diff --git a/tests/visual/selectmenu/events.html b/tests/visual/selectmenu/events.html
index e17434add..7371e1373 100644
--- a/tests/visual/selectmenu/events.html
+++ b/tests/visual/selectmenu/events.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
- <title>jQuery UI Selectmenu - Event functionality</title>
+ <title>jQuery UI Selectmenu - Events functionality</title>
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
<script src="../../../jquery-1.7.1.js"></script>
<script src="../../../ui/jquery.ui.core.js"></script>
diff --git a/tests/visual/selectmenu/methods.html b/tests/visual/selectmenu/methods.html
index 5476dfff8..b3e5a42e5 100644
--- a/tests/visual/selectmenu/methods.html
+++ b/tests/visual/selectmenu/methods.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
- <title>jQuery UI Selectmenu - Event functionality</title>
+ <title>jQuery UI Selectmenu - Methids functionality</title>
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
<script src="../../../jquery-1.7.1.js"></script>
<script src="../../../ui/jquery.ui.core.js"></script>
diff --git a/tests/visual/selectmenu/option.html b/tests/visual/selectmenu/option.html
index fef35ab9f..308a9ebc2 100644
--- a/tests/visual/selectmenu/option.html
+++ b/tests/visual/selectmenu/option.html
@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
- <title>jQuery UI Selectmenu - Event functionality</title>
+ <title>jQuery UI Selectmenu - Option functionality</title>
<link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
<script src="../../../jquery-1.7.1.js"></script>
<script src="../../../ui/jquery.ui.core.js"></script>
diff --git a/tests/visual/selectmenu/themeswitcher.html b/tests/visual/selectmenu/themeswitcher.html
new file mode 100644
index 000000000..c533fc4ae
--- /dev/null
+++ b/tests/visual/selectmenu/themeswitcher.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="utf-8">
+ <title>jQuery UI Selectmenu - Themeswitcher functionality</title>
+ <link rel="stylesheet" href="../../../themes/base/jquery.ui.all.css">
+ <script src="../../../jquery-1.7.1.js"></script>
+ <script src="../../../ui/jquery.ui.core.js"></script>
+ <script src="../../../ui/jquery.ui.widget.js"></script>
+ <script src="../../../ui/jquery.ui.position.js"></script>
+ <script src="../../../ui/jquery.ui.button.js"></script>
+ <script src="../../../ui/jquery.ui.menu.js"></script>
+ <script src="../../../ui/jquery.ui.selectmenu.js"></script>
+ <link rel="stylesheet" href="../../../demos/demos.css">
+ <script>
+ $(function() {
+ $('select#speed').selectmenu();
+
+ var withOverflow = $('select#number').selectmenu({
+ dropdown: false
+ });
+ withOverflow.selectmenu("widget").addClass("overflow");
+
+ $('select#files').selectmenu();
+ });
+ </script>
+ <style>
+ form { margin: 100px 0 0 0 }
+ fieldset { border: 0; }
+ label { display: block; }
+ select { width: 200px; }
+ .overflow ul { height: 200px; overflow: auto; overflow-y: auto; overflow-x: hidden;}
+ </style>
+</head>
+<body>
+
+<div class="demo">
+
+<form action="#">
+ <fieldset>
+ <label for="speed">Select a speed:</label>
+ <select name="speed" id="speed">
+ <option value="Slower">Slower</option>
+ <option value="Slow">Slow</option>
+ <option value="Medium" selected="selected">Medium</option>
+ <option value="Fast">Fast</option>
+ <option value="Faster">Faster</option>
+ </select>
+ <br />
+ <br />
+ <br />
+ <label for="number">Select a number:</label>
+ <select name="number" id="number">
+ <option value="1">1</option>
+ <option value="2" selected="selected">2</option>
+ <option value="3">3</option>
+ <option value="4">4</option>
+ <option value="5">5</option>
+ <option value="6">6</option>
+ <option value="7">7</option>
+ <option value="8">8</option>
+ <option value="9">9</option>
+ <option value="10">10</option>
+ <option value="11">11</option>
+ <option value="12">12</option>
+ <option value="13">13</option>
+ <option value="14">14</option>
+ <option value="15">15</option>
+ <option value="16">16</option>
+ <option value="17">17</option>
+ <option value="18">18</option>
+ <option value="19">19</option>
+ </select>
+ <br />
+ <br />
+ <br />
+ <label for="files">Select a file:</label>
+ <select name="files" id="files">
+ <optgroup label="Scripts">
+ <option value="jquery">jQuery.js</option>
+ <option value="jqueryui">ui.jQuery.js</option>
+ </optgroup>
+ <optgroup label="Other files">
+ <option value="somefile">Some unknown file</option>
+ <option value="someotherfile">Some other file</option>
+ </optgroup>
+ </select>
+ </fieldset>
+</form>
+
+</div><!-- End demo -->
+
+
+<script type="text/javascript" src="http://jqueryui.com/themeroller/themeswitchertool/"></script>
+<script>
+ $('<div/>').css({
+ position: "absolute",
+ right: 10,
+ top: 10
+ }).appendTo(document.body).themeswitcher();
+</script>
+
+</body>
+</html>
diff --git a/themes/base/jquery.ui.button.css b/themes/base/jquery.ui.button.css
index 0d11065f4..2ae50afd1 100644
--- a/themes/base/jquery.ui.button.css
+++ b/themes/base/jquery.ui.button.css
@@ -7,7 +7,7 @@
*
* http://docs.jquery.com/UI/Button#theming
*/
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
+.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: hidden; *overflow: visible; } /* the overflow property removes extra width in IE */
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
.ui-button-icons-only { width: 3.4em; }
diff --git a/themes/base/jquery.ui.dialog.css b/themes/base/jquery.ui.dialog.css
index 12609ed19..c3a1d85ea 100644
--- a/themes/base/jquery.ui.dialog.css
+++ b/themes/base/jquery.ui.dialog.css
@@ -9,7 +9,7 @@
*/
.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
+.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
diff --git a/ui/jquery.ui.autocomplete.js b/ui/jquery.ui.autocomplete.js
index dbda2058e..bd415aa2b 100644
--- a/ui/jquery.ui.autocomplete.js
+++ b/ui/jquery.ui.autocomplete.js
@@ -58,6 +58,7 @@ $.widget( "ui.autocomplete", {
suppressKeyPressRepeat,
suppressInput;
+ this.isMultiLine = this.element.is( "textarea,[contenteditable]" );
this.valueMethod = this.element[ this.element.is( "input,textarea" ) ? "val" : "text" ];
this.element
@@ -92,15 +93,11 @@ $.widget( "ui.autocomplete", {
break;
case keyCode.UP:
suppressKeyPress = true;
- self._move( "previous", event );
- // prevent moving cursor to beginning of text field in some browsers
- event.preventDefault();
+ self._keyEvent( "previous", event );
break;
case keyCode.DOWN:
suppressKeyPress = true;
- self._move( "next", event );
- // prevent moving cursor to end of text field in some browsers
- event.preventDefault();
+ self._keyEvent( "next", event );
break;
case keyCode.ENTER:
case keyCode.NUMPAD_ENTER:
@@ -151,14 +148,10 @@ $.widget( "ui.autocomplete", {
self._move( "nextPage", event );
break;
case keyCode.UP:
- self._move( "previous", event );
- // prevent moving cursor to beginning of text field in some browsers
- event.preventDefault();
+ self._keyEvent( "previous", event );
break;
case keyCode.DOWN:
- self._move( "next", event );
- // prevent moving cursor to end of text field in some browsers
- event.preventDefault();
+ self._keyEvent( "next", event );
break;
}
})
@@ -495,6 +488,15 @@ $.widget( "ui.autocomplete", {
_value: function( value ) {
return this.valueMethod.apply( this.element, arguments );
+ },
+
+ _keyEvent: function( keyEvent, event ) {
+ if ( !this.isMultiLine || this.menu.element.is( ":visible" ) ) {
+ this._move( keyEvent, event );
+
+ // prevents moving cursor to beginning/end of the text field in some browsers
+ event.preventDefault();
+ }
}
});
diff --git a/ui/jquery.ui.dialog.js b/ui/jquery.ui.dialog.js
index 49ef8f64b..3d7638667 100644
--- a/ui/jquery.ui.dialog.js
+++ b/ui/jquery.ui.dialog.js
@@ -625,7 +625,7 @@ $.widget("ui.dialog", {
height: "auto",
width: options.width
})
- .height();
+ .outerHeight();
minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
if ( options.height === "auto" ) {
diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js
index 4fe859f4e..0263cff65 100644
--- a/ui/jquery.ui.menu.js
+++ b/ui/jquery.ui.menu.js
@@ -20,7 +20,7 @@ $.widget( "ui.menu", {
defaultElement: "<ul>",
delay: 150,
options: {
- items: "ul",
+ menus: "ul",
position: {
my: "left top",
at: "right top"
@@ -29,7 +29,6 @@ $.widget( "ui.menu", {
},
_create: function() {
this.activeMenu = this.element;
- this.isScrolling = false;
this.menuId = this.element.attr( "id" ) || "ui-menu-" + idIncrement++;
if ( this.element.find( ".ui-icon" ).length ) {
this.element.addClass( "ui-menu-icons" );
@@ -66,13 +65,10 @@ $.widget( "ui.menu", {
},
"mouseover .ui-menu-item": function( event ) {
event.stopImmediatePropagation();
- if ( !this.isScrolling ) {
- var target = $( event.currentTarget );
- // Remove ui-state-active class from siblings of the newly focused menu item to avoid a jump caused by adjacent elements both having a class with a border
- target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" );
- this.focus( event, target );
- }
- this.isScrolling = false;
+ var target = $( event.currentTarget );
+ // Remove ui-state-active class from siblings of the newly focused menu item to avoid a jump caused by adjacent elements both having a class with a border
+ target.siblings().children( ".ui-state-active" ).removeClass( "ui-state-active" );
+ this.focus( event, target );
},
"mouseleave": "collapseAll",
"mouseleave .ui-menu": "collapseAll",
@@ -86,10 +82,6 @@ $.widget( "ui.menu", {
this.collapseAll( event );
}
}, 0);
- },
- scroll: function( event ) {
- // Keep track of scrolling to prevent mouseover from firing inadvertently when scrolling the menu
- this.isScrolling = true;
}
});
@@ -258,7 +250,7 @@ $.widget( "ui.menu", {
refresh: function() {
// initialize nested menus
- var submenus = this.element.find( this.options.items + ":not( .ui-menu )" )
+ var submenus = this.element.find( this.options.menus + ":not( .ui-menu )" )
.addClass( "ui-menu ui-widget ui-widget-content ui-corner-all" )
.attr( "role", "menu" )
.hide()