From 33d76f152ee1df7600f157c627ce5f78a681778d Mon Sep 17 00:00:00 2001
From: Eugene Mutavchi <emutavchi@productengine.com>
Date: Tue, 22 Dec 2009 15:35:06 +0200
Subject: Fixed low bug EXT-3430(Accept/reject voice call dialog appears in
 wrong place for several moments)

--HG--
branch : product-engine
---
 indra/newview/llimview.cpp | 19 ++++++++++++++-----
 indra/newview/llimview.h   |  2 +-
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 8917cc11e1..403883ad99 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -1403,11 +1403,20 @@ void LLCallDialog::getAllowedRect(LLRect& rect)
 	rect = gViewerWindow->getWorldViewRectScaled();
 }
 
-void LLCallDialog::onOpen(const LLSD& key)
+BOOL LLCallDialog::postBuild()
 {
+	if (!LLDockableFloater::postBuild())
+		return FALSE;
+
 	// dock the dialog to the Speak Button, where other sys messages appear
-	setDockControl(new LLDockControl(LLBottomTray::getInstance()->getChild<LLPanel>("speak_panel"),
-		this, getDockTongue(), LLDockControl::TOP, boost::bind(&LLCallDialog::getAllowedRect, this, _1)));
+	LLView *anchor_panel = LLBottomTray::getInstance()->getChild<LLView>("speak_panel");
+
+	setDockControl(new LLDockControl(
+		anchor_panel, this,
+		getDockTongue(), LLDockControl::TOP,
+		boost::bind(&LLCallDialog::getAllowedRect, this, _1)));
+
+	return TRUE;
 }
 
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1551,7 +1560,7 @@ void LLOutgoingCallDialog::onCancel(void* user_data)
 
 BOOL LLOutgoingCallDialog::postBuild()
 {
-	BOOL success = LLDockableFloater::postBuild();
+	BOOL success = LLCallDialog::postBuild();
 
 	childSetAction("Cancel", onCancel, this);
 
@@ -1570,7 +1579,7 @@ LLCallDialog(payload)
 
 BOOL LLIncomingCallDialog::postBuild()
 {
-	LLDockableFloater::postBuild();
+	LLCallDialog::postBuild();
 
 	LLUUID session_id = mPayload["session_id"].asUUID();
 	LLSD caller_id = mPayload["caller_id"];
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index 09f0c9df71..909fdaa37f 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -476,7 +476,7 @@ public:
 	LLCallDialog(const LLSD& payload);
 	~LLCallDialog() {}
 
-	virtual void onOpen(const LLSD& key);
+	virtual BOOL postBuild();
 
 protected:
 	virtual void getAllowedRect(LLRect& rect);
-- 
cgit v1.2.3