From eedc8687b0d05a14e41f1601d2ee615c69d132d0 Mon Sep 17 00:00:00 2001
From: Richard Nelson <richard@lindenlab.com>
Date: Wed, 19 Oct 2011 18:45:22 -0700
Subject: [PATCH] EXP-1364 FIX Debug console output covered by left toolbar
 buttons if present EXP-1427 FIX Voice Settings dialog closes when selecting
 minimize option

---
 indra/llui/lldockablefloater.cpp | 7 ++++++-
 indra/llui/llfloater.cpp         | 7 +++++++
 indra/newview/lldebugview.cpp    | 9 +++++++++
 indra/newview/lldebugview.h      | 1 +
 4 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/indra/llui/lldockablefloater.cpp b/indra/llui/lldockablefloater.cpp
index ca2dc644a48..aea58be12af 100644
--- a/indra/llui/lldockablefloater.cpp
+++ b/indra/llui/lldockablefloater.cpp
@@ -162,10 +162,15 @@ void LLDockableFloater::setVisible(BOOL visible)
 
 void LLDockableFloater::setMinimized(BOOL minimize)
 {
-	if(minimize)
+	if(minimize && isDocked())
 	{
+		// minimizing a docked floater just hides it
 		setVisible(FALSE);
 	}
+	else
+	{
+		LLFloater::setMinimized(minimize);
+	}
 }
 
 LLView * LLDockableFloater::getDockWidget()
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp
index 0749093777b..bd537bfb199 100644
--- a/indra/llui/llfloater.cpp
+++ b/indra/llui/llfloater.cpp
@@ -1479,6 +1479,7 @@ BOOL LLFloater::handleMouseDown(S32 x, S32 y, MASK mask)
 		if(offerClickToButton(x, y, mask, BUTTON_CLOSE)) return TRUE;
 		if(offerClickToButton(x, y, mask, BUTTON_RESTORE)) return TRUE;
 		if(offerClickToButton(x, y, mask, BUTTON_TEAR_OFF)) return TRUE;
+		if(offerClickToButton(x, y, mask, BUTTON_DOCK)) return TRUE;
 
 		// Otherwise pass to drag handle for movement
 		return mDragHandle->handleMouseDown(x, y, mask);
@@ -1584,6 +1585,12 @@ void LLFloater::setDocked(bool docked, bool pop_on_undock)
 	{
 		mDocked = docked;
 		mButtonsEnabled[BUTTON_DOCK] = !mDocked;
+
+		if (mDocked)
+		{
+			setMinimized(FALSE);
+		}
+
 		updateTitleButtons();
 
 		storeDockStateControl();
diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp
index cc6ba05e7e1..ba511a36931 100644
--- a/indra/newview/lldebugview.cpp
+++ b/indra/newview/lldebugview.cpp
@@ -147,3 +147,12 @@ LLDebugView::~LLDebugView()
 	gTextureCategoryView = NULL;
 }
 
+void LLDebugView::draw()
+{
+	LLView* floater_snap_region = getRootView()->getChildView("floater_snap_region");
+	LLRect debug_rect;
+	floater_snap_region->localRectToOtherView(floater_snap_region->getLocalRect(), &debug_rect, getParent());
+
+	setShape(debug_rect);
+	LLView::draw();
+}
diff --git a/indra/newview/lldebugview.h b/indra/newview/lldebugview.h
index 20262fc89e5..907a42c981e 100644
--- a/indra/newview/lldebugview.h
+++ b/indra/newview/lldebugview.h
@@ -55,6 +55,7 @@ class LLDebugView : public LLView
 	~LLDebugView();
 
 	void init();
+	void draw();
 
 	void setStatsVisible(BOOL visible);
 	
-- 
GitLab