summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--includes/menu.inc6
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, '/'));