summaryrefslogtreecommitdiff
path: root/indra/llui
diff options
context:
space:
mode:
Diffstat (limited to 'indra/llui')
-rw-r--r--indra/llui/llaccordionctrltab.cpp1
-rw-r--r--indra/llui/llfocusmgr.cpp14
-rw-r--r--indra/llui/llfocusmgr.h2
-rw-r--r--indra/llui/llnotifications.cpp4
-rw-r--r--indra/llui/llnotifications.h8
-rw-r--r--indra/llui/llview.h5
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.