diff options
-rw-r--r-- | includes/menu.inc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/includes/menu.inc b/includes/menu.inc index 20fed8f90..65e0a4f5d 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -432,13 +432,17 @@ function menu_set_active_item($path = NULL) { static $stored_mid; if (!isset($stored_mid) || isset($path)) { - $menu = menu_get_menu(); if (!isset($path)) { $path = $_GET['q']; } else { $_GET['q'] = $path; + + // If we change ?q= we need to rebuild the contextual menu items + // because they are often variable depending on the value of ?q=. + _menu_append_contextual_items(); } + $menu = menu_get_menu(); while ($path && !isset($menu['path index'][$path])) { $path = substr($path, 0, strrpos($path, '/')); |