diff options
author | Kelly Washington <kelly@lindenlab.com> | 2010-09-24 15:57:17 -0700 |
---|---|---|
committer | Kelly Washington <kelly@lindenlab.com> | 2010-09-24 15:57:17 -0700 |
commit | d129d6ee23995d0a5e89aa71e56d6ed6aa95761e (patch) | |
tree | 0f8ff06e67af5cf7e3c031432c6ed1f25717866f /indra/llui | |
parent | 22228896ee2ce6f20d67ce2c4a415fcd40d6b6e0 (diff) |
VWR-21377 Script editor ctrl-f fix.
let some LLViews handle shortcut keys if they want.
reviewed with ambroff
Diffstat (limited to 'indra/llui')
-rw-r--r-- | indra/llui/llfocusmgr.cpp | 14 | ||||
-rw-r--r-- | indra/llui/llfocusmgr.h | 2 | ||||
-rw-r--r-- | indra/llui/llview.h | 5 |
3 files changed, 21 insertions, 0 deletions
diff --git a/indra/llui/llfocusmgr.cpp b/indra/llui/llfocusmgr.cpp index 1f16d12add..7fbfd80d8d 100644 --- a/indra/llui/llfocusmgr.cpp +++ b/indra/llui/llfocusmgr.cpp @@ -315,6 +315,20 @@ void LLFocusMgr::removeKeyboardFocusWithoutCallback( const LLFocusableElement* f } } +bool LLFocusMgr::keyboardFocusHasMenus() const +{ + LLView* focus_view = dynamic_cast<LLView*>(mKeyboardFocus); + while( focus_view ) + { + if(focus_view->hasMenus()) + { + return true; + } + + focus_view = focus_view->getParent(); + } + return false; +} void LLFocusMgr::setMouseCapture( LLMouseHandler* new_captor ) { diff --git a/indra/llui/llfocusmgr.h b/indra/llui/llfocusmgr.h index eef82a3b5a..e09bad0187 100644 --- a/indra/llui/llfocusmgr.h +++ b/indra/llui/llfocusmgr.h @@ -118,6 +118,8 @@ public: void unlockFocus(); BOOL focusLocked() const { return mLockedView != NULL; } + bool keyboardFocusHasMenus() const; + private: LLUICtrl* mLockedView; diff --git a/indra/llui/llview.h b/indra/llui/llview.h index f7175112bf..62683491ef 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -277,6 +277,11 @@ public: BOOL focusNextRoot(); BOOL focusPrevRoot(); + // Normally we want the app menus to get priority on modified keys + // However, if this item claims to have menus then we want to give + // it first chance at handling them. (eg. the script editor) + virtual bool hasMenus() const { return false; }; + // delete all children. Override this function if you need to // perform any extra clean up such as cached pointers to selected // children, etc. |