From 2338e8a18697d7a01f706b872d3df18f62bd0dc1 Mon Sep 17 00:00:00 2001 From: Inusaito Sayori Date: Thu, 4 Sep 2014 17:31:11 -0400 Subject: [PATCH] Fix Issue 1653: Using Search Box causes crash --- indra/newview/llfloaterdirectory.cpp | 10 ++++++++-- indra/newview/llfloaterdirectory.h | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/indra/newview/llfloaterdirectory.cpp b/indra/newview/llfloaterdirectory.cpp index ed01ff283..e6606de36 100644 --- a/indra/newview/llfloaterdirectory.cpp +++ b/indra/newview/llfloaterdirectory.cpp @@ -454,13 +454,13 @@ void LLFloaterDirectory::requestClassifieds() void LLFloaterDirectory::searchInAll(const std::string& search_text) { + start(); LLPanelDirFindAllInterface::search(sInstance->mFindAllPanel, search_text); performQueryOn2("classified_panel", search_text); performQueryOn2("events_panel", search_text); performQueryOn2("groups_panel", search_text); performQueryOn2("people_panel", search_text); performQueryOn2("places_panel", search_text); - sInstance->open(); } void LLFloaterDirectory::showFindAll(const std::string& search_text) @@ -582,7 +582,7 @@ void LLFloaterDirectory::focusCurrentPanel() } // static -void LLFloaterDirectory::showPanel(const std::string& tabname) +void LLFloaterDirectory::start() { // This function gets called when web browser clicks are processed, // so we don't delete the existing panel, which would delete the @@ -592,6 +592,12 @@ void LLFloaterDirectory::showPanel(const std::string& tabname) sInstance = new LLFloaterDirectory("directory"); } sInstance->open(); /*Flawfinder: ignore*/ +} + +// static +void LLFloaterDirectory::showPanel(const std::string& tabname) +{ + start(); sInstance->childShowTab("Directory Tabs", tabname); sInstance->focusCurrentPanel(); } diff --git a/indra/newview/llfloaterdirectory.h b/indra/newview/llfloaterdirectory.h index 0f5f1b501..c36ce412b 100644 --- a/indra/newview/llfloaterdirectory.h +++ b/indra/newview/llfloaterdirectory.h @@ -94,6 +94,7 @@ public: private: static void performQueryOn(const std::string& name, const std::string& search_text); static void performQueryOn2(const std::string& name, const std::string& search_text); + static void start(); static void showPanel(const std::string& tabname); /*virtual*/ void onClose(bool app_quitting); void focusCurrentPanel();