From b3960899066156bc7d3fd5befb2f7e687a328152 Mon Sep 17 00:00:00 2001
From: Paul ProductEngine <pguslisty@productengine.com>
Date: Wed, 1 Feb 2012 17:15:22 +0200
Subject: [PATCH] EXP-1822 FIXED (After deleting an item from inventory and
 confirming "ok" to delete, focus leaves inventory)

-Return focus to the previously focused view
---
 indra/newview/lltoastalertpanel.cpp | 16 ++++++++++++++++
 indra/newview/lltoastalertpanel.h   |  1 +
 2 files changed, 17 insertions(+)

diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp
index 12ad0717992..ada7570776d 100644
--- a/indra/newview/lltoastalertpanel.cpp
+++ b/indra/newview/lltoastalertpanel.cpp
@@ -69,6 +69,15 @@ LLToastAlertPanel::LLToastAlertPanel( LLNotificationPtr notification, bool modal
 		mLabel(notification->getName()),
 		mLineEditor(NULL)
 {
+	// EXP-1822
+	// save currently focused view, so that return focus to it
+	// on destroying this toast.
+	LLView* current_selection = dynamic_cast<LLView*>(gFocusMgr.getKeyboardFocus());
+	if (current_selection)
+	{
+		mPreviouslyFocusedView = current_selection->getHandle();
+	}
+
 	const LLFontGL* font = LLFontGL::getFontSansSerif();
 	const S32 LINE_HEIGHT = font->getLineHeight();
 	const S32 EDITOR_HEIGHT = 20;
@@ -408,6 +417,13 @@ LLToastAlertPanel::~LLToastAlertPanel()
 {
 	LLTransientFloaterMgr::instance().removeControlView(
 			LLTransientFloaterMgr::GLOBAL, this);
+
+	// EXP-1822
+	// return focus to the previously focused view
+	if (mPreviouslyFocusedView.get())
+	{
+		gFocusMgr.setKeyboardFocus(mPreviouslyFocusedView.get());
+	}
 }
 
 BOOL LLToastAlertPanel::hasTitleBar() const
diff --git a/indra/newview/lltoastalertpanel.h b/indra/newview/lltoastalertpanel.h
index 7b157f19bb1..d1be5e018ea 100644
--- a/indra/newview/lltoastalertpanel.h
+++ b/indra/newview/lltoastalertpanel.h
@@ -113,6 +113,7 @@ class LLToastAlertPanel
 	LLFrameTimer	mDefaultBtnTimer;
 	// For Dialogs that take a line as text as input:
 	LLLineEditor* mLineEditor;
+	LLHandle<LLView>	mPreviouslyFocusedView;
 
 };
 
-- 
GitLab