? 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 10 Dec 2009 14:26:39 -0000 @@ -26,27 +26,41 @@ 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; + height: 18px; margin-top: 2px; outline: none; text-indent: 34px; - width: 30px; + width: 28px; overflow: hidden; + border: 1px solid transparent; } 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: 1px solid #ccc; + border-bottom: none; + padding: 0px; + position: relative; + z-index: 1; } div.contextual-links-wrapper ul.contextual-links { + background: #fff; + border: #ccc 1px solid; display: none; margin: 0; - padding: 5px 10px; + padding: 0.25em 0; position: absolute; right: 0; top: 20px; white-space: nowrap; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; } .contextual-links-region:hover a.contextual-links-trigger, div.contextual-links-active a.contextual-links-trigger, @@ -64,12 +78,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: #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 10 Dec 2009 14:26:39 -0000 @@ -16,7 +16,22 @@ Drupal.behaviors.contextualLinks = { $wrapper.toggleClass('contextual-links-active'); return false; } + ).hover( + function (){ + $wrapper.closest('.contextual-links-region').addClass('contextual-links-region-active'); + }, + function (){ + $wrapper.closest('.contextual-links-region').removeClass('contextual-links-region-active'); + } ); + $wrapper.find('ul.contextual-links').hover( + function (){ + $wrapper.closest('.contextual-links-region').addClass('contextual-links-region-active'); + }, + function (){ + $wrapper.closest('.contextual-links-region').removeClass('contextual-links-region-active'); + } + ) $wrapper.prepend($trigger) .closest('.contextual-links-region').hover(Drupal.contextualLinks.hover, Drupal.contextualLinks.hoverOut); }); @@ -24,17 +39,10 @@ Drupal.behaviors.contextualLinks = { }; /** - * 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') + $(this).closest('.contextual-links-region') .find('.contextual-links-active').removeClass('contextual-links-active') .find('ul.contextual-links').hide(); }; Index: modules/user/user.module =================================================================== RCS file: /cvs/drupal/drupal/modules/user/user.module,v retrieving revision 1.1089 diff -u -p -r1.1089 user.module --- modules/user/user.module 7 Dec 2009 03:45:16 -0000 1.1089 +++ modules/user/user.module 10 Dec 2009 14:26:57 -0000 @@ -1770,17 +1770,18 @@ function user_login($form, &$form_state) * table. If a distributed authentication module is successful, it * should set $form_state['uid'] to a user ID. * - * We use three validators instead of one since external authentication - * modules usually only need to alter the second validator. + * We use four validators instead of one since external authentication + * modules usually only need to alter the third validator. * * @see user_login_name_validate() + * @see user_login_cookie_validate() * @see user_login_authenticate_validate() * @see user_login_final_validate() * @return array * A simple list of validate functions. */ function user_login_default_validators() { - return array('user_login_name_validate', 'user_login_authenticate_validate', 'user_login_final_validate'); + return array('user_login_name_validate', 'user_login_cookie_validate', 'user_login_authenticate_validate', 'user_login_final_validate'); } /** @@ -1794,6 +1795,16 @@ function user_login_name_validate($form, } /** + * A FAPI validate handler. Sets an error if cookies are not supported. + */ +function user_login_cookie_validate($form, &$form_state) { + if (!$_COOKIE) { + $domain = ini_get('session.cookie_domain') ? ltrim(ini_get('session.cookie_domain'), '.') : $_SERVER['HTTP_HOST']; + form_set_error('', t('It seems your browser does not accept cookies. To log into this site, you need to accept cookies from the domain %domain.', array('%domain' => $domain))); + } +} + +/** * A validate handler on the login form. Check supplied username/password * against local users table. If successful, $form_state['uid'] * is set to the matching user ID. @@ -1920,6 +1931,7 @@ function user_authenticate($name, $passw */ function user_login_finalize(&$edit = array()) { global $user; + watchdog('user', 'Session opened for %name.', array('%name' => $user->name)); // Update the user table timestamp noting user has logged in. // This is also used to invalidate one-time login links. @@ -1944,6 +1956,7 @@ function user_login_finalize(&$edit = ar */ function user_login_submit($form, &$form_state) { global $user; + $user = user_load($form_state['uid']); user_login_finalize();