diff options
Diffstat (limited to 'indra/llui/llmenugl.cpp')
-rw-r--r-- | indra/llui/llmenugl.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index 8607d1d752..7d2df53f9b 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -385,7 +385,12 @@ void LLMenuItemGL::doIt( void ) { // close all open menus by default // if parent menu is actually visible (and we are not triggering menu item via accelerator) - if (!getMenu()->getTornOff() && getMenu()->getVisible()) + // HACK: do not call hidemenus() from a pie menu item, as most pie menu operations + // assume that the thing you clicked on stays selected (parcel and/or object) after the + // pie menu is gone --RN + if (getMenu()->getWidgetType() != WIDGET_TYPE_PIE_MENU + && !getMenu()->getTornOff() + && getMenu()->getVisible()) { ((LLMenuHolderGL*)getMenu()->getParent())->hideMenus(); } @@ -4103,6 +4108,11 @@ BOOL LLMenuBarGL::handleKeyHere(KEY key, MASK mask, BOOL called_from_parent) { mAltKeyTrigger = TRUE; } + else // if any key other than ALT hit, clear out waiting for Alt key mode + { + mAltKeyTrigger = FALSE; + } + // before processing any other key, check to see if ALT key has triggered menu access checkMenuTrigger(); |