? modules/contextual/images/context_links_601150_4.patch
? modules/contextual/images/gear-select.png
? sites/all/modules/devel
? sites/default/files
? sites/default/private
? sites/default/settings.php
Index: modules/contextual/contextual.css
===================================================================
RCS file: /cvs/drupal/drupal/modules/contextual/contextual.css,v
retrieving revision 1.1
diff -u -p -r1.1 contextual.css
--- modules/contextual/contextual.css	6 Dec 2009 01:00:27 -0000	1.1
+++ modules/contextual/contextual.css	11 Dec 2009 03:15:46 -0000
@@ -26,27 +26,44 @@ html.js div.contextual-links-wrapper {
   display: block;
 }
 a.contextual-links-trigger {
-  background: transparent url(images/cog-select.png) no-repeat center center;
+  background: transparent url(images/gear-select.png) no-repeat top left;
   display: none;
-  height: 20px;
-  margin-top: 2px;
+  height: 18px;
+  margin: 2px 1px 0 1px;
   outline: none;
   text-indent: 34px;
-  width: 30px;
+  width: 28px;
   overflow: hidden;
 }
 a.contextual-links-trigger:hover,
 div.contextual-links-active a.contextual-links-trigger {
+  background-position: 0 -18px;
+}
+div.contextual-links-active a.contextual-links-trigger {
   background-color: #fff;
+  border: #ccc 1px solid;
+  border-bottom: none;
+  padding: 0;
+  margin: 1px 0 0 0;
+  position: relative;
+  z-index: 1;
 }
 div.contextual-links-wrapper ul.contextual-links {
+  background-color: #fff;
+  border: #ccc 1px solid;
   display: none;
   margin: 0;
-  padding: 5px 10px;
+  padding: 0.25em 0;
   position: absolute;
   right: 0;
-  top: 20px;
+  top: 19px;
   white-space: nowrap;
+  -moz-border-radius: 4px;
+  -moz-border-radius-topright: 0;
+  -webkit-border-radius: 4px;
+  -webkit-border-top-right-radius: 0;
+  border-radius: 4px;
+  border-radius-topright: 0;
 }
 .contextual-links-region:hover a.contextual-links-trigger,
 div.contextual-links-active a.contextual-links-trigger,
@@ -64,12 +81,11 @@ div.contextual-links-wrapper a {
   text-decoration: none;
 }
 ul.contextual-links li a {
-  background: #fff;
-  color: #666;
+  color: #333;
   display: block;
-  margin: 0.5em 0;
-  padding: 0.3em;
+  margin: 0.25em 0;
+  padding: 0.25em;
 }
 ul.contextual-links li a:hover {
-  text-decoration: underline;
+  background-color: #bfdcee;
 }
Index: modules/contextual/contextual.js
===================================================================
RCS file: /cvs/drupal/drupal/modules/contextual/contextual.js,v
retrieving revision 1.1
diff -u -p -r1.1 contextual.js
--- modules/contextual/contextual.js	6 Dec 2009 01:00:27 -0000	1.1
+++ modules/contextual/contextual.js	11 Dec 2009 03:15:46 -0000
@@ -10,6 +10,8 @@ Drupal.behaviors.contextualLinks = {
   attach: function (context) {
     $('div.contextual-links-wrapper', context).once('contextual-links', function () {
       var $wrapper = $(this);
+      var $region = $wrapper.closest('.contextual-links-region');
+      var $links = $wrapper.find('ul.contextual-links');
       var $trigger = $('<a class="contextual-links-trigger" href="#" />').text(Drupal.t('Configure')).click(
         function () {
           $wrapper.find('ul.contextual-links').slideToggle(100);
@@ -17,24 +19,24 @@ Drupal.behaviors.contextualLinks = {
           return false;
         }
       );
-      $wrapper.prepend($trigger)
-        .closest('.contextual-links-region').hover(Drupal.contextualLinks.hover, Drupal.contextualLinks.hoverOut);
+      // Attach hover behavior to trigger and ul.contextual-links.
+      $trigger.add($links).hover(
+        function () { $region.addClass('contextual-links-region-active'); },
+        function () { $region.removeClass('contextual-links-region-active'); }
+      );
+      // Hide the contextual links when user rolls out of the ul.contextual-links or .contextual-links-region.
+      $links.add($region).bind('mouseleave', Drupal.contextualLinks.mouseleave);
+      // Prepend the trigger.
+      $links.end().prepend($trigger);
     });
   }
 };
 
 /**
- * Enables outline for the region contextual links are associated with.
- */
-Drupal.contextualLinks.hover = function () {
-  $(this).closest('.contextual-links-region').addClass('contextual-links-region-active');
-};
-
-/**
  * Disables outline for the region contextual links are associated with.
  */
-Drupal.contextualLinks.hoverOut = function () {
-  $(this).closest('.contextual-links-region').removeClass('contextual-links-region-active')
+Drupal.contextualLinks.mouseleave = function () {
+  $(this).closest('.contextual-links-region')
     .find('.contextual-links-active').removeClass('contextual-links-active')
     .find('ul.contextual-links').hide();
 };
