? .DS_Store
? modules/shortcut/shortcut.png
? sites/default/files
? sites/default/private
? sites/default/settings.php
Index: modules/shortcut/shortcut.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/shortcut/shortcut.css,v
retrieving revision 1.1
diff -u -p -r1.1 shortcut.css
--- modules/shortcut/shortcut.css	17 Oct 2009 00:51:52 -0000	1.1
+++ modules/shortcut/shortcut.css	3 Nov 2009 14:48:10 -0000
@@ -15,7 +15,7 @@ div#toolbar div.toolbar-shortcuts ul {
 div#toolbar div.toolbar-shortcuts ul li a {
   -moz-border-radius: 5px;
   -webkit-border-radius: 5px;
-  padding: 5px 10px 5px 5px;
+  padding: 5px 10px;
   margin-right: 5px;
 }
 
@@ -27,7 +27,7 @@ div#toolbar div.toolbar-shortcuts ul li 
 
 div#toolbar div.toolbar-shortcuts ul li a.active:hover,
 div#toolbar div.toolbar-shortcuts ul li a.active {
-  background: url(../toolbar/toolbar.png) 0 -20px repeat-x;
+  background: #000;
 }
 
 div#toolbar div.toolbar-shortcuts span.icon {
@@ -40,26 +40,36 @@ div#toolbar div.toolbar-shortcuts span.i
   -webkit-border-radius: 5px;
 }
 
-div.add-to-shortcuts a span.icon {
+div.add-or-remove-shortcuts {
+  padding-top: 5px;
+}
+
+div.add-or-remove-shortcuts a span.icon {
   display: block;
   width: 12px;
-  background: url(../toolbar/toolbar.png) no-repeat -50px -60px;
+  background: url(shortcut.png) no-repeat 0 0;
   height: 12px;
   float: left;
   margin-left:8px;
 }
 
-div.add-to-shortcuts a:hover span.icon {
-  background-position: -50px -72px;
+div.add-or-remove-shortcuts a:hover span.icon {
+  background-position: 0 -12px;
+}
+div.remove-shortcut a span.icon{
+  background-position: -12px 0;
+}
+div.remove-shortcut a:hover span.icon{
+  background-position: -12px -12px;
 }
 
-div.add-to-shortcuts a span.text {
+div.add-or-remove-shortcuts a span.text {
   float: left;
   padding-left:10px;
   display: none;
 }
 
-div.add-to-shortcuts a:hover span.text {
+div.add-or-remove-shortcuts a:hover span.text {
   font-size: 10px;
   line-height: 12px;
   color: #fff;
Index: modules/shortcut/shortcut.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/shortcut/shortcut.module,v
retrieving revision 1.3
diff -u -p -r1.3 shortcut.module
--- modules/shortcut/shortcut.module	1 Nov 2009 23:02:13 -0000	1.3
+++ modules/shortcut/shortcut.module	3 Nov 2009 14:48:11 -0000
@@ -381,11 +381,17 @@ function shortcut_current_displayed_set(
   $query->fields('s');
   $query->join('shortcut_set_users', 'u', 's.set_name = u.set_name');
   $query->condition('u.uid', $account->uid);
+  
   $shortcut_set = $query->execute()->fetchObject();
+  
+  if ($shortcut_set) {
+    $shortcut_set = shortcut_set_load($shortcut_set->set_name);
+  }
   // Otherwise, use the default set.
-  if (!$shortcut_set) {
+  else { 
     $shortcut_set = shortcut_default_set($account);
   }
+  
   $shortcut_sets[$account->uid] = $shortcut_set;
   return $shortcut_set;
 }
@@ -511,21 +517,41 @@ function shortcut_page_build(&$page) {
     $link = $_GET['q'];
     $query_parameters = drupal_get_query_parameters();
     if (!empty($query_parameters)) {
-     $link .= '?' . drupal_http_build_query($query_parameters);
+      $link .= '?' . drupal_http_build_query($query_parameters);
     }
+
     $query = array(
      'link' => $link,
      'name' => drupal_get_title(),
-     'token' => drupal_get_token('shortcut-add-link'),
     );
     $query += drupal_get_destination();
 
     $shortcut_set = shortcut_current_displayed_set();
-    $link_text = shortcut_set_switch_access() ? t('Add to %shortcut_set shortcuts', array('%shortcut_set' => $shortcut_set->title)) : t('Add to shortcuts');
-    $page['add_to_shortcuts'] = array(
-     '#prefix' => '<div class="add-to-shortcuts">',
-     '#markup' => l('<span class="icon"></span><span class="text">' . $link_text . '</span>', 'admin/config/system/shortcut/' . $shortcut_set->set_name . '/add-link-inline', array('query' => $query, 'html' => TRUE)),
-     '#suffix' => '</div>',
+
+    // Check if $link is already a shortcut and set $link_mode accordingly.
+    foreach ($shortcut_set->links as $shortcut) {
+      if ($link == $shortcut['link_path']) {
+        $mlid = $shortcut['mlid'];
+        break;
+      }
+    }
+    $link_mode = isset($mlid) ? "remove" : "add";
+
+    if ($link_mode == "add") {
+      $query['token'] = drupal_get_token('shortcut-add-link');
+      $link_text = shortcut_set_switch_access() ? t('Add to %shortcut_set shortcuts', array('%shortcut_set' => $shortcut_set->title)) : t('Add to shortcuts');
+      $link_path = 'admin/config/system/shortcut/' . $shortcut_set->set_name . '/add-link-inline';
+    }
+    else {
+      $query['mlid'] = $mlid;
+      $link_text = shortcut_set_switch_access() ? t('Remove from %shortcut_set shortcuts', array('%shortcut_set' => $shortcut_set->title)) : t('Remove from shortcuts');
+      $link_path = 'admin/config/system/shortcut/link/' . $mlid . '/delete';
+    }
+
+    $page['add_or_remove_shortcut'] = array(
+      '#prefix' => '<div class="add-or-remove-shortcuts '.$link_mode.'-shortcut">',
+      '#markup' => l('<span class="icon"></span><span class="text">' . $link_text . '</span>', $link_path, array('query' => $query, 'html' => TRUE)),
+       '#suffix' => '</div>',
     );
   }
 
@@ -551,7 +577,7 @@ function shortcut_page_build(&$page) {
  * Implement hook_preprocess_page().
  */
 function shortcut_preprocess_page(&$variables) {
-  if (isset($variables['page']['add_to_shortcuts'])) {
-    $variables['add_to_shortcuts'] = drupal_render($variables['page']['add_to_shortcuts']);
+  if (isset($variables['page']['add_or_remove_shortcut'])) {
+    $variables['add_or_remove_shortcut'] = drupal_render($variables['page']['add_or_remove_shortcut']);
   }
 }
Index: modules/toolbar/toolbar.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/toolbar/toolbar.css,v
retrieving revision 1.6
diff -u -p -r1.6 toolbar.css
--- modules/toolbar/toolbar.css	18 Oct 2009 12:06:06 -0000	1.6
+++ modules/toolbar/toolbar.css	3 Nov 2009 14:48:11 -0000
@@ -49,7 +49,7 @@ div#toolbar div.shadow {
   right: 0;
   bottom: -15px;
   height: 15px;
-  background: url(toolbar.png) 0 -85px repeat-x;
+  background: url(toolbar.png) 0 -45px repeat-x;
 }
 
 div#toolbar a {
@@ -66,7 +66,7 @@ div#toolbar ul li a {
  * Administration menu.
  */
 div#toolbar div.toolbar-menu {
-  background: url(toolbar.png) 0 -20px repeat-x;
+  background: #000;
   height: 25px;
   line-height: 20px;
   padding: 5px 10px 0;
@@ -88,7 +88,7 @@ div#toolbar div.toolbar-menu span.toggle
   position: absolute;
   right: 10px;
   cursor: pointer;
-  background: url(toolbar.png) 0 -60px no-repeat;
+  background: url(toolbar.png) 0 -20px no-repeat;
   text-indent: -9999px;
   overflow: hidden;
   width: 25px;
@@ -96,7 +96,7 @@ div#toolbar div.toolbar-menu span.toggle
 }
 
 div#toolbar div.toolbar-menu span.toggle-active {
-  background-position:  -25px -60px;
+  background-position:  -25px -20px;
 }
 
 div#toolbar div.toolbar-menu ul li a {
Index: modules/toolbar/toolbar.png
===================================================================
RCS file: /cvs/drupal/drupal/modules/toolbar/toolbar.png,v
retrieving revision 1.4
diff -u -p -r1.4 toolbar.png
Binary files /tmp/cvsDZZJIm and toolbar.png differ
Index: themes/seven/page.tpl.php
===================================================================
RCS file: /cvs/drupal/drupal/themes/seven/page.tpl.php,v
retrieving revision 1.6
diff -u -p -r1.6 page.tpl.php
--- themes/seven/page.tpl.php	17 Oct 2009 01:15:40 -0000	1.6
+++ themes/seven/page.tpl.php	3 Nov 2009 14:48:11 -0000
@@ -4,7 +4,7 @@
   <div id="branding" class="clearfix">
     <?php print $breadcrumb; ?>
     <?php if ($title): ?><h1 class="page-title"><?php print $title; ?></h1><?php endif; ?>
-    <?php if (isset($add_to_shortcuts)): ?><?php print $add_to_shortcuts; ?><?php endif; ?>
+    <?php if (isset($add_or_remove_shortcut)): ?><?php print $add_or_remove_shortcut; ?><?php endif; ?>
     <?php if ($primary_local_tasks): ?><ul class="tabs primary"><?php print render($primary_local_tasks); ?></ul><?php endif; ?>
   </div>
 
