From 1d6bfb727a8015e82cd4060a0c73cf3fc719e818 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Tue, 21 Sep 2021 21:55:12 +0300 Subject: SL-16022 Fixed Tab not cycling through all options --- indra/llui/llmenugl.cpp | 18 ++++++++++++++++++ indra/newview/llviewerwindow.cpp | 1 + indra/newview/skins/default/xui/en/main_view.xml | 14 ++++++++++++-- .../skins/default/xui/en/panel_navigation_bar.xml | 1 - .../newview/skins/default/xui/en/panel_status_bar.xml | 1 - 5 files changed, 31 insertions(+), 4 deletions(-) (limited to 'indra') diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index cdaf03ebde..6b9bf425d2 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -1363,6 +1363,9 @@ public: virtual BOOL handleKeyHere(KEY key, MASK mask); virtual BOOL handleAcceleratorKey(KEY key, MASK mask); + + virtual void onFocusLost(); + virtual void setFocus(BOOL b); }; LLMenuItemBranchDownGL::LLMenuItemBranchDownGL( const Params& p) : @@ -1517,6 +1520,21 @@ BOOL LLMenuItemBranchDownGL::handleAcceleratorKey(KEY key, MASK mask) return handled; } +void LLMenuItemBranchDownGL::onFocusLost() +{ + // needed for tab-based selection + LLMenuItemBranchGL::onFocusLost(); + LLMenuGL::setKeyboardMode(FALSE); + setHighlight(FALSE); +} + +void LLMenuItemBranchDownGL::setFocus(BOOL b) +{ + // needed for tab-based selection + LLMenuItemBranchGL::setFocus(b); + LLMenuGL::setKeyboardMode(b); + setHighlight(b); +} BOOL LLMenuItemBranchDownGL::handleKeyHere(KEY key, MASK mask) { diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 32f18b1d5c..017d3d1bfd 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -2231,6 +2231,7 @@ void LLViewerWindow::initWorldUI() gStatusBar->setShape(status_bar_container->getLocalRect()); // sync bg color with menu bar gStatusBar->setBackgroundColor( gMenuBarView->getBackgroundColor().get() ); + // add InBack so that gStatusBar won't be drawn over menu status_bar_container->addChildInBack(gStatusBar); status_bar_container->setVisible(TRUE); diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml index 9885e37cea..a675dd7ab3 100644 --- a/indra/newview/skins/default/xui/en/main_view.xml +++ b/indra/newview/skins/default/xui/en/main_view.xml @@ -8,6 +8,15 @@ tab_stop="false" name="main_view" width="1024"> + + + + -- cgit v1.2.3