diff options
Diffstat (limited to 'indra/llui')
-rw-r--r-- | indra/llui/llaccordionctrltab.cpp | 1 | ||||
-rw-r--r-- | indra/llui/llfocusmgr.cpp | 14 | ||||
-rw-r--r-- | indra/llui/llfocusmgr.h | 2 | ||||
-rw-r--r-- | indra/llui/llnotifications.cpp | 4 | ||||
-rw-r--r-- | indra/llui/llnotifications.h | 8 | ||||
-rw-r--r-- | indra/llui/llview.h | 5 |
6 files changed, 28 insertions, 6 deletions
diff --git a/indra/llui/llaccordionctrltab.cpp b/indra/llui/llaccordionctrltab.cpp index b7da5f4a1b..e28ef1f25d 100644 --- a/indra/llui/llaccordionctrltab.cpp +++ b/indra/llui/llaccordionctrltab.cpp @@ -141,6 +141,7 @@ LLAccordionCtrlTab::LLAccordionCtrlTabHeader::LLAccordionCtrlTabHeader( textboxParams.use_ellipses = true; textboxParams.bg_visible = false; textboxParams.mouse_opaque = false; + textboxParams.parse_urls = false; mHeaderTextbox = LLUICtrlFactory::create<LLTextBox>(textboxParams); addChild(mHeaderTextbox); } diff --git a/indra/llui/llfocusmgr.cpp b/indra/llui/llfocusmgr.cpp index 1f16d12add..43e5f6b051 100644 --- a/indra/llui/llfocusmgr.cpp +++ b/indra/llui/llfocusmgr.cpp @@ -315,6 +315,20 @@ void LLFocusMgr::removeKeyboardFocusWithoutCallback( const LLFocusableElement* f } } +bool LLFocusMgr::keyboardFocusHasAccelerators() const +{ + LLView* focus_view = dynamic_cast<LLView*>(mKeyboardFocus); + while( focus_view ) + { + if(focus_view->hasAccelerators()) + { + 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..22c1895075 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 keyboardFocusHasAccelerators() const; + private: LLUICtrl* mLockedView; diff --git a/indra/llui/llnotifications.cpp b/indra/llui/llnotifications.cpp index 5b2e7590b1..92fa6ada54 100644 --- a/indra/llui/llnotifications.cpp +++ b/indra/llui/llnotifications.cpp @@ -1404,7 +1404,7 @@ bool LLNotifications::loadTemplates() LLNotificationTemplate::Notifications params; LLXUIParser parser; parser.readXUI(root, params, full_filename); - + if(!params.validateBlock()) { llerrs << "Problem reading UI Notifications file: " << full_filename << llendl; @@ -1645,7 +1645,7 @@ bool LLNotifications::getIgnoreAllNotifications() { return mIgnoreAllNotifications; } - + bool LLNotifications::isVisibleByRules(LLNotificationPtr n) { if(n->isRespondedTo()) diff --git a/indra/llui/llnotifications.h b/indra/llui/llnotifications.h index 98ff035170..5298549b58 100644 --- a/indra/llui/llnotifications.h +++ b/indra/llui/llnotifications.h @@ -580,7 +580,7 @@ public: std::string summarize() const; bool hasUniquenessConstraints() const; - + bool matchesTag(const std::string& tag); virtual ~LLNotification() {} @@ -863,7 +863,7 @@ public: // load notification descriptions from file; // OK to call more than once because it will reload bool loadTemplates(); - + // load visibility rules from file; // OK to call more than once because it will reload bool loadVisibilityRules(); @@ -929,7 +929,7 @@ public: void setIgnoreAllNotifications(bool ignore); bool getIgnoreAllNotifications(); - + bool isVisibleByRules(LLNotificationPtr pNotification); private: @@ -950,7 +950,7 @@ private: // put your template in bool addTemplate(const std::string& name, LLNotificationTemplatePtr theTemplate); TemplateMap mTemplates; - + VisibilityRuleList mVisibilityRules; std::string mFileName; diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 654e99563e..a5d8e31640 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -274,6 +274,11 @@ public: BOOL focusNextRoot(); BOOL focusPrevRoot(); + // Normally we want the app menus to get priority on accelerated keys + // However, sometimes we want to give specific views a first chance + // iat handling them. (eg. the script editor) + virtual bool hasAccelerators() 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. |