From ff2bb96a55e8869843174be7324b0a59578a4f0d Mon Sep 17 00:00:00 2001
From: maxim_productengine <mnikolenko@productengine.com>
Date: Wed, 8 Aug 2012 18:26:19 +0300
Subject: [PATCH] MAINT-105 FIXED New function to check People tabs visibility

---
 indra/newview/llviewermenu.cpp                | 15 +++++++++++
 .../skins/default/xui/en/menu_viewer.xml      | 27 ++++++++++++-------
 2 files changed, 33 insertions(+), 9 deletions(-)

diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 54efcd61a84..67cc171eefe 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -3464,6 +3464,20 @@ bool enable_sitdown_self()
     return isAgentAvatarValid() && !gAgentAvatarp->isSitting() && !gAgent.getFlying();
 }
 
+class LLCheckPanelPeopleTab : public view_listener_t
+{
+	bool handleEvent(const LLSD& userdata)
+		{
+			std::string panel_name = userdata.asString();
+
+			LLPanel *panel = LLFloaterSidePanelContainer::getPanel("people", panel_name);
+			if(panel && panel->isInVisibleChain())
+			{
+				return true;
+			}
+			return false;
+		}
+};
 // Toggle one of "People" panel tabs in side tray.
 class LLTogglePanelPeopleTab : public view_listener_t
 {
@@ -8553,6 +8567,7 @@ void initialize_menus()
 
 	// we don't use boost::bind directly to delay side tray construction
 	view_listener_t::addMenu( new LLTogglePanelPeopleTab(), "SideTray.PanelPeopleTab");
+	view_listener_t::addMenu( new LLCheckPanelPeopleTab(), "SideTray.CheckPanelPeopleTab");
 
 	 // Avatar pie menu
 	view_listener_t::addMenu(new LLObjectMute(), "Avatar.Mute");
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 1aa55acf2d8..c6d9f9ef8f3 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -276,30 +276,39 @@
              parameter="gestures" />
         </menu_item_check>
         <menu_item_separator/>
-        <menu_item_call
+        <menu_item_check
          label="Friends"
          name="My Friends"
          shortcut="control|shift|F">
-            <menu_item_call.on_click
+            <menu_item_check.on_check
+             function="SideTray.CheckPanelPeopleTab"
+             parameter="friends_panel" />
+            <menu_item_check.on_click
              function="SideTray.PanelPeopleTab"
              parameter="friends_panel" />
-            </menu_item_call>
-        <menu_item_call
+            </menu_item_check>
+        <menu_item_check
          label="Groups"
          name="My Groups"
          shortcut="control|shift|G">
-            <menu_item_call.on_click
+         	<menu_item_check.on_check
+             function="SideTray.CheckPanelPeopleTab"
+             parameter="groups_panel" />
+            <menu_item_check.on_click
              function="SideTray.PanelPeopleTab"
              parameter="groups_panel" />
-        </menu_item_call>
-        <menu_item_call
+        </menu_item_check>
+        <menu_item_check
          label="Nearby people"
          name="Active Speakers"
          shortcut="control|shift|A">
-            <menu_item_call.on_click
+        	 <menu_item_check.on_check
+             function="SideTray.CheckPanelPeopleTab"
+             parameter="nearby_panel" />
+            <menu_item_check.on_click
               function="SideTray.PanelPeopleTab"
               parameter="nearby_panel" />
-        </menu_item_call>
+        </menu_item_check>
         <menu_item_call
          label="Block List"
          name="Block List">
-- 
GitLab