Index: misc/contextual_links.css =================================================================== RCS file: /cvs/drupal/drupal/misc/contextual_links.css,v retrieving revision 1.1 diff -u -p -r1.1 contextual_links.css --- misc/contextual_links.css 17 Oct 2009 05:50:27 -0000 1.1 +++ misc/contextual_links.css 30 Nov 2009 01:25:30 -0000 @@ -8,31 +8,52 @@ position: relative; } .contextual-links-region-active { - outline: #000 dashed 1px; + outline: #999 dashed 1px; } /** * Contextual links. */ -ul.contextual-links { +div.contextual-links-wrapper { + display: none; float: right; font-size: 90%; + position: relative; +} +html.js div.contextual-links-wrapper { + display: block; +} +a.contextual-links-trigger { + background: transparent url(arrow-asc.png) no-repeat; + display: none; + height: 13px; + outline: none; + overflow: hidden; + text-indent: 13px; + width: 13px; +} +.contextual-links-region:hover a.contextual-links-trigger { + display: block; +} +div.contextual-links-wrapper ul.contextual-links { + background: #fff none; margin: 0; padding: 0; + position: absolute; + right: 0; + top: 13px; + white-space: nowrap; } ul.contextual-links li { - border-left: 1px solid #ccc; - display: inline; line-height: 100%; list-style: none; - margin: 0 0 0 0.3em; - padding: 0 0 0 0.6em; -} -ul.contextual-links li.first { - border-left: 0; margin: 0; padding: 0; } -ul.contextual-links li a { +div.contextual-links-wrapper a { text-decoration: none; } +ul.contextual-links li a { + display: block; + padding: 0.3em; +} Index: misc/contextual_links.js =================================================================== RCS file: /cvs/drupal/drupal/misc/contextual_links.js,v retrieving revision 1.1 diff -u -p -r1.1 contextual_links.js --- misc/contextual_links.js 17 Oct 2009 05:50:27 -0000 1.1 +++ misc/contextual_links.js 30 Nov 2009 01:22:29 -0000 @@ -8,8 +8,19 @@ Drupal.contextualLinks = Drupal.contextu */ Drupal.behaviors.contextualLinks = { attach: function (context) { - $('ul.contextual-links', context).once('contextual-links', function () { - $(this).hover(Drupal.contextualLinks.hover, Drupal.contextualLinks.hoverOut); + $('div.contextual-links-wrapper', context).once('contextual-links', function () { + var $wrapper = $(this); + var $trigger = $('' + Drupal.t('Configure') + '').toggle( + function () { + $wrapper.find('ul.contextual-links').slideDown(100); + }, + function () { + $wrapper.find('ul.contextual-links').slideUp(100); + } + ); + $wrapper.prepend($trigger) + .hover(Drupal.contextualLinks.hover, Drupal.contextualLinks.hoverOut) + .find('ul.contextual-links').hide(); }); } }; @@ -18,7 +29,7 @@ Drupal.behaviors.contextualLinks = { * Enables outline for the region contextual links are associated with. */ Drupal.contextualLinks.hover = function () { - $(this).addClass('contextual-links-link-active') + $(this).addClass('contextual-links-active') .closest('.contextual-links-region').addClass('contextual-links-region-active'); }; @@ -26,7 +37,7 @@ Drupal.contextualLinks.hover = function * Disables outline for the region contextual links are associated with. */ Drupal.contextualLinks.hoverOut = function () { - $(this).removeClass('contextual-links-link-active') + $(this).removeClass('contextual-links-active') .closest('.contextual-links-region').removeClass('contextual-links-region-active'); }; Index: modules/system/system.module =================================================================== RCS file: /cvs/drupal/drupal/modules/system/system.module,v retrieving revision 1.845 diff -u -p -r1.845 system.module --- modules/system/system.module 28 Nov 2009 09:36:41 -0000 1.845 +++ modules/system/system.module 29 Nov 2009 22:58:15 -0000 @@ -3621,6 +3621,8 @@ function system_build_contextual_links($ $build = array(); if ($links) { $build = array( + '#prefix' => '