diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp
index 989be60273..44edfb53e3 100755
--- a/indra/llui/lltabcontainer.cpp
+++ b/indra/llui/lltabcontainer.cpp
@@ -858,12 +858,40 @@ BOOL LLTabContainer::handleKeyHere(KEY key, MASK mask)
}
// [/SL:KB]
BOOL handled = FALSE;
- if (key == KEY_LEFT && mask == MASK_ALT)
+ // Use SHIFT-ALT mask to control parent container
+ if ((mask == (MASK_ALT | MASK_SHIFT)) && (key == KEY_LEFT || key == KEY_RIGHT))
+ {
+ LLTabContainer* parent_tab_container = getParentByType();
+ if (parent_tab_container)
+ {
+ if (key == KEY_LEFT)
+ {
+ parent_tab_container->selectPrevTab();
+ }
+ else
+ {
+ parent_tab_container->selectNextTab();
+ }
+
+ if (parent_tab_container->getCurrentPanel())
+ {
+ parent_tab_container->getCurrentPanel()->setFocus(TRUE);
+ }
+
+ return TRUE;
+ }
+ }
+ if (key == KEY_LEFT && (mask == MASK_ALT || mask == (MASK_ALT | MASK_SHIFT)))
+ //if (key == KEY_LEFT && mask == MASK_ALT)
+ //
{
selectPrevTab();
handled = TRUE;
}
- else if (key == KEY_RIGHT && mask == MASK_ALT)
+ // Use SHIFT-ALT mask to control parent container
+ //else if (key == KEY_RIGHT && mask == MASK_ALT)
+ else if (key == KEY_RIGHT && (mask == MASK_ALT || mask == (MASK_ALT | MASK_SHIFT)))
+ //
{
selectNextTab();
handled = TRUE;