Index: admin_menu_toolbar/admin_menu_toolbar.css
===================================================================
RCS file: /cvs/drupal/contributions/modules/admin_menu/admin_menu_toolbar/admin_menu_toolbar.css,v
retrieving revision 1.7
diff -u -r1.7 admin_menu_toolbar.css
--- admin_menu_toolbar/admin_menu_toolbar.css	30 Jan 2011 03:40:54 -0000	1.7
+++ admin_menu_toolbar/admin_menu_toolbar.css	21 Feb 2011 08:48:26 -0000
@@ -150,7 +150,12 @@
 #admin-menu li.admin-menu-shortcuts ul li a:hover {
   background: #555;
 }
-#admin-menu li.admin-menu-shortcuts ul li a.active:hover,
-#admin-menu li.admin-menu-shortcuts ul li a.active {
-  background: url(toolbar.png) 0 -20px repeat-x;
+#admin-menu li#edit-shortcuts {
+  float: right;
+}
+#admin-menu li#edit-shortcuts a {
+  text-decoration: underline;
+}
+#admin-menu li#edit-shortcuts a:hover {
+  background: #666;
 }
Index: admin_menu_toolbar/admin_menu_toolbar.js
===================================================================
RCS file: /cvs/drupal/contributions/modules/admin_menu/admin_menu_toolbar/admin_menu_toolbar.js,v
retrieving revision 1.3
diff -u -r1.3 admin_menu_toolbar.js
--- admin_menu_toolbar/admin_menu_toolbar.js	19 Feb 2010 23:19:00 -0000	1.3
+++ admin_menu_toolbar/admin_menu_toolbar.js	21 Feb 2011 08:48:26 -0000
@@ -20,6 +20,22 @@
   }
 };
 
+Drupal.admin.behaviors.click = function (context, settings, $adminMenu) {
+  $('li.admin-menu-shortcuts', $adminMenu).click(
+    function () {
+      var drawer = $('li.admin-menu-shortcuts > ul');
+      if ( drawer.hasClass('opened') ) {
+        drawer.removeClass('opened');
+        drawer.css({left: '-999em', display: 'none'});
+      }
+      else {
+        drawer.addClass('opened');
+        drawer.css({left: 'auto', display: 'block'});
+      }
+    }
+  );
+}
+
 /**
  * @} End of "defgroup admin_behaviors".
  */
Index: admin_menu_toolbar/admin_menu_toolbar.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/admin_menu/admin_menu_toolbar/admin_menu_toolbar.module,v
retrieving revision 1.4
diff -u -r1.4 admin_menu_toolbar.module
--- admin_menu_toolbar/admin_menu_toolbar.module	19 Feb 2010 23:19:00 -0000	1.4
+++ admin_menu_toolbar/admin_menu_toolbar.module	21 Feb 2011 08:48:26 -0000
@@ -13,7 +13,7 @@
  *
  * @todo Add another admin_menu hook to avoid cluttering hook_init().
  */
-function admin_menu_toolbar_init() {
+function admin_menu_toolbar_init() {    
   if (!user_access('access administration menu') || admin_menu_suppress(FALSE)) {
     return;
   }
@@ -37,6 +37,10 @@
     $settings['activeTrail'] = url('<front>');
   }
   drupal_add_js(array('admin_menu' => array('toolbar' => $settings)), 'setting');
+  
+  // This is here so that the shortcut toolbar links are refreshed when the shortcut set is changed
+  // @todo flush cache whenever the default (or any?) shortcut set is changed instead of every time as below
+  admin_menu_flush_caches();
 }
 
 /**
@@ -62,6 +66,7 @@
     '#theme' => 'admin_menu_links',
     '#weight' => -200,
   );
+  
   $content['shortcuts']['shortcuts'] = array(
     '#title' => t('Show shortcuts'),
     // @todo How do we want to trigger/store state?
@@ -71,15 +76,32 @@
       'attributes' => array('class' => 'toggle'),
     ),
   );
-  // @todo *Move* this from $content['menu'] instead.
-  $content['shortcuts']['shortcuts']['node-add'] = array(
-    '#title' => t('Add content'),
-    '#href' => 'node/add',
-  );
-  $content['shortcuts']['shortcuts']['admin-content-node'] = array(
-    '#title' => t('Find content'),
-    '#href' => 'admin/content/node',
-    '#access' => user_access('administer nodes'),
-  );
+  
+  if( module_exists('shortcut')) {
+    $shortcut_set = shortcut_current_displayed_set();
+    $content['shortcuts']['shortcuts']['edit-shortcuts'] = array(
+      '#title' => t('Edit Shortcuts'),
+      '#href' => 'admin/config/user-interface/shortcut/' . $shortcut_set->set_name,
+      '#attributes' => array('id' => 'edit-shortcuts'),
+    );
+    foreach ($shortcut_set->links as $index => $link) {
+      $content['shortcuts']['shortcuts'][$link['link_path']] = array(
+        '#title' => $link['link_title'],
+        '#href' => $link['link_path'],
+        '#access' => TRUE,
+      );
+    }
+  }
+  else {
+    // @todo *Move* this from $content['menu'] instead.
+    $content['shortcuts']['shortcuts']['node-add'] = array(
+      '#title' => t('Add content'),
+      '#href' => 'node/add',
+    );
+    $content['shortcuts']['shortcuts']['admin-content-node'] = array(
+      '#title' => t('Find content'),
+      '#href' => 'admin/content/node',
+      '#access' => user_access('administer nodes'),
+    );
+  }
 }
-
Index: admin_menu.js
===================================================================
RCS file: /cvs/drupal/contributions/modules/admin_menu/admin_menu.js,v
retrieving revision 1.32
diff -u -r1.32 admin_menu.js
--- admin_menu.js	20 Feb 2010 23:44:00 -0000	1.32
+++ admin_menu.js	21 Feb 2011 08:48:25 -0000
@@ -215,12 +215,14 @@
         .css({left: 'auto', display: 'block'})
         // Immediately hide nephew lists.
         .parent().siblings('li').children('ul').css({left: '-999em', display: 'none'});
+      Drupal.admin.openDrawer($adminMenu);
     },
     function () {
       // Start the timer.
       var uls = $('> ul', this);
       this.sfTimer = setTimeout(function () {
         uls.css({left: '-999em', display: 'none'});
+        Drupal.admin.openDrawer($adminMenu);
       }, 400);
     }
   );
@@ -229,5 +231,12 @@
 /**
  * @} End of "defgroup admin_behaviors".
  */
+ 
+Drupal.admin.openDrawer = function($adminMenu) {
+  var drawer = $('li.admin-menu-shortcuts > ul', $adminMenu);
+  if ( drawer.hasClass('opened') ) {
+    drawer.css({left: 'auto', display: 'block'});
+  }
+}
 
 })(jQuery);
