From e4fb7e22b083724c1585c8a98c25e2f43164f2a4 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sun, 6 Dec 2015 13:21:53 +0100 Subject: [PATCH] Use SHIFT+ALT+LEFT/RIGHT to switch tab on parent container in case of cascaded tab containers --- indra/llui/lltabcontainer.cpp | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) 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;