From: Scott González Date: Sat, 17 Jan 2009 21:00:59 +0000 (+0000) Subject: Dialog: Giving the content area and button pane priority over the title bar for which... X-Git-Tag: 1.6rc6~224 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=60856ea46146ad93e173fe1cddff9f882c73d916;p=jquery-ui.git Dialog: Giving the content area and button pane priority over the title bar for which element should gain focus on open. --- diff --git a/ui/ui.dialog.js b/ui/ui.dialog.js index 38c24c596..bd5d3b850 100644 --- a/ui/ui.dialog.js +++ b/ui/ui.dialog.js @@ -207,15 +207,18 @@ $.widget("ui.dialog", { open: function() { if (this._isOpen) { return; } - this.overlay = this.options.modal ? new $.ui.dialog.overlay(this) : null; - (this.uiDialog.next().length && this.uiDialog.appendTo('body')); + var options = this.options, + uiDialog = this.uiDialog; + + this.overlay = options.modal ? new $.ui.dialog.overlay(this) : null; + (uiDialog.next().length && uiDialog.appendTo('body')); this._size(); - this._position(this.options.position); - this.uiDialog.show(this.options.show); + this._position(options.position); + uiDialog.show(options.show); this.moveToTop(true); // prevent tabbing out of modal dialogs - (this.options.modal && this.uiDialog.bind('keypress.ui-dialog', function(event) { + (options.modal && uiDialog.bind('keypress.ui-dialog', function(event) { if (event.keyCode != $.ui.keyCode.TAB) { return; } @@ -235,7 +238,17 @@ $.widget("ui.dialog", { } })); - this.uiDialog.find(':tabbable:first').focus(); + // set focus to the first tabbable element in: + // - content area + // - button pane + // - title bar + $([]) + .add(uiDialog.find('.ui-dialog-content :tabbable:first')) + .add(uiDialog.find('.ui-dialog-buttonpane :tabbable:first')) + .add(uiDialog.find('.ui-dialog-titlebar :tabbable:first')) + .filter(':first') + .focus(); + this._trigger('open'); this._isOpen = true; },