keep keyboard focus in dialog; close dialog on escape key
var node = evt.target; if (evt.keyCode == dojo.keys.TAB){ this._getFocusItems(this.containerNode); } var singleFocusItem = (this._firstFocusItem == this._lastFocusItem); if(evt.keyCode == dojo.keys.ESCAPE){ this.onCancel(); }else if(node == this._firstFocusItem && evt.shiftKey && evt.keyCode == dojo.keys.TAB){ if(!singleFocusItem){ dijit.focus(this._lastFocusItem); // send focus to last item in dialog } dojo.stopEvent(evt); }else if(node == this._lastFocusItem && evt.keyCode == dojo.keys.TAB && !evt.shiftKey){ if(!singleFocusItem){ dijit.focus(this._firstFocusItem); // send focus to first item in dialog } dojo.stopEvent(evt); }else if(evt.keyCode == dojo.keys.TAB){ // we want the browser's default tab handling to move focus // but we don't want the tab to propagate upwards evt.stopPropagation(); }