diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -8,7 +8,7 @@ return array( 'names' => array( 'core.pkg.css' => '8aeacc63', - 'core.pkg.js' => '3f15fa62', + 'core.pkg.js' => 'b0971c32', 'darkconsole.pkg.js' => 'e7393ebb', 'differential.pkg.css' => '33da0633', 'differential.pkg.js' => '4b7d8f19', @@ -490,7 +490,7 @@ 'rsrc/js/core/behavior-history-install.js' => '7ee2b591', 'rsrc/js/core/behavior-hovercard.js' => 'bcaccd64', 'rsrc/js/core/behavior-keyboard-pager.js' => 'a8da01f0', - 'rsrc/js/core/behavior-keyboard-shortcuts.js' => '7835f8c9', + 'rsrc/js/core/behavior-keyboard-shortcuts.js' => '433f2ff7', 'rsrc/js/core/behavior-lightbox-attachments.js' => 'f8ba29d7', 'rsrc/js/core/behavior-line-linker.js' => '1499a8cb', 'rsrc/js/core/behavior-more.js' => 'a80d0378', @@ -651,7 +651,7 @@ 'javelin-behavior-phabricator-gesture' => '3ab51e2c', 'javelin-behavior-phabricator-gesture-example' => '558829c2', 'javelin-behavior-phabricator-keyboard-pager' => 'a8da01f0', - 'javelin-behavior-phabricator-keyboard-shortcuts' => '7835f8c9', + 'javelin-behavior-phabricator-keyboard-shortcuts' => '433f2ff7', 'javelin-behavior-phabricator-line-linker' => '1499a8cb', 'javelin-behavior-phabricator-nav' => '56a1ca03', 'javelin-behavior-phabricator-notification-example' => '8ce821c5', @@ -1178,6 +1178,13 @@ 'javelin-stratcom', 'phabricator-tooltip', ), + '433f2ff7' => array( + 'javelin-behavior', + 'javelin-workflow', + 'javelin-json', + 'javelin-dom', + 'phabricator-keyboard-shortcut', + ), '44959b73' => array( 'javelin-util', 'javelin-uri', @@ -1492,13 +1499,6 @@ 'multirow-row-manager', 'javelin-json', ), - '7835f8c9' => array( - 'javelin-behavior', - 'javelin-workflow', - 'javelin-json', - 'javelin-dom', - 'phabricator-keyboard-shortcut', - ), '7927a7d3' => array( 'javelin-behavior', 'javelin-quicksand', diff --git a/src/view/page/menu/PhabricatorMainMenuView.php b/src/view/page/menu/PhabricatorMainMenuView.php --- a/src/view/page/menu/PhabricatorMainMenuView.php +++ b/src/view/page/menu/PhabricatorMainMenuView.php @@ -186,6 +186,7 @@ } $result = $search; + $keyboard_config['searchID'] = $search->getID(); } Javelin::initBehavior('phabricator-keyboard-shortcuts', $keyboard_config); diff --git a/webroot/rsrc/js/core/behavior-keyboard-shortcuts.js b/webroot/rsrc/js/core/behavior-keyboard-shortcuts.js --- a/webroot/rsrc/js/core/behavior-keyboard-shortcuts.js +++ b/webroot/rsrc/js/core/behavior-keyboard-shortcuts.js @@ -30,4 +30,12 @@ }) .register(); + desc = 'Give keyboard focus to the search box.'; + new JX.KeyboardShortcut('q', desc) + .setHandler(function() { + var search = JX.$(config.searchID); + search.focus(); + search.select(); + }) + .register(); });