From 9fcbdab559b7cae31ffe597b3aa5293c4b7c9a35 Mon Sep 17 00:00:00 2001
From: Richard Nelson <richard@lindenlab.com>
Date: Tue, 13 Oct 2009 22:43:22 +0000
Subject: better ShowXuiNames tooltip heuristics reviewed by James

---
 indra/newview/llviewerwindow.cpp | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

(limited to 'indra')

diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index fc6467ea23..874d76308a 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2605,8 +2605,19 @@ void LLViewerWindow::updateUI()
 				{
 					it.skipDescendants();
 				}
-				else if (viewp->getMouseOpaque())
+				// only report xui names for LLUICtrls, not the various container LLViews
+				else if (dynamic_cast<LLUICtrl*>(viewp)) 
 				{
+					if (dynamic_cast<LLPanel*>(viewp))
+					{
+						// constrain search to descendants of this panel
+						// by resetting iterator
+						it = viewp->beginTreeDFS();
+					}
+
+					// if we are in a new part of the tree (not a descendent of current tooltip_view)
+					// then push the results for tooltip_view and start with a new potential view
+					// NOTE: this emulates visiting only the leaf nodes that meet our criteria
 					if (!viewp->hasAncestor(tooltip_view))
 					{
 						append_xui_tooltip(tooltip_view, tool_tip_msg);
-- 
cgit v1.2.3