From 376fe00f8fd5142c60406856d539f68c98b9b6ea Mon Sep 17 00:00:00 2001 From: Ansariel Date: Mon, 10 May 2021 12:39:56 +0200 Subject: [PATCH] Add CTRL-F accelerator key support --- indra/newview/fsfloatercontacts.cpp | 14 +++++++++++--- indra/newview/fsfloatergrouptitles.cpp | 12 ++++++++++++ indra/newview/fsfloatergrouptitles.h | 2 ++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/indra/newview/fsfloatercontacts.cpp b/indra/newview/fsfloatercontacts.cpp index cfd14f1c68..e9fc95e531 100644 --- a/indra/newview/fsfloatercontacts.cpp +++ b/indra/newview/fsfloatercontacts.cpp @@ -199,10 +199,18 @@ BOOL FSFloaterContacts::tick() BOOL FSFloaterContacts::handleKeyHere(KEY key, MASK mask) { - if (FSCommon::isFilterEditorKeyCombo(key, mask) && getActiveTabName() == FRIENDS_TAB_NAME && gSavedSettings.getBOOL("FSContactListShowSearch")) + if (FSCommon::isFilterEditorKeyCombo(key, mask)) { - mFriendFilter->setFocus(TRUE); - return TRUE; + if (getActiveTabName() == FRIENDS_TAB_NAME && gSavedSettings.getBOOL("FSContactListShowSearch")) + { + mFriendFilter->setFocus(TRUE); + return TRUE; + } + else if (getActiveTabName() == GROUP_TAB_NAME) + { + mGroupFilter->setFocus(TRUE); + return true; + } } if (mask == MASK_CONTROL && key == 'W' && getHost()) diff --git a/indra/newview/fsfloatergrouptitles.cpp b/indra/newview/fsfloatergrouptitles.cpp index b4483bcc3a..3df1424f7a 100644 --- a/indra/newview/fsfloatergrouptitles.cpp +++ b/indra/newview/fsfloatergrouptitles.cpp @@ -27,6 +27,7 @@ #include "llviewerprecompiledheaders.h" #include "fsfloatergrouptitles.h" +#include "fscommon.h" #include "llfiltereditor.h" #include "llgroupactions.h" #include "llscrolllistctrl.h" @@ -105,6 +106,17 @@ BOOL FSFloaterGroupTitles::postBuild() return TRUE; } +BOOL FSFloaterGroupTitles::handleKeyHere(KEY key, MASK mask) +{ + if (FSCommon::isFilterEditorKeyCombo(key, mask)) + { + mFilterEditor->setFocus(TRUE); + return true; + } + + return LLFloater::handleKeyHere(key, mask); +} + void FSFloaterGroupTitles::changed(LLGroupChange gc) { switch (gc) diff --git a/indra/newview/fsfloatergrouptitles.h b/indra/newview/fsfloatergrouptitles.h index 0bb252e802..fd6b5c1f6a 100644 --- a/indra/newview/fsfloatergrouptitles.h +++ b/indra/newview/fsfloatergrouptitles.h @@ -58,6 +58,8 @@ public: virtual ~FSFloaterGroupTitles(); /*virtual*/ BOOL postBuild(); + /*virtual*/ BOOL handleKeyHere(KEY key, MASK mask); + /*virtual*/ bool hasAccelerators() const { return true; } virtual void changed(LLGroupChange gc); bool handleEvent(LLPointer event, const LLSD& userdata); // called on agent group list changes