From b3960899066156bc7d3fd5befb2f7e687a328152 Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Wed, 1 Feb 2012 17:15:22 +0200 Subject: 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(+) (limited to 'indra/newview') diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp index 12ad071799..ada7570776 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(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 7b157f19bb..d1be5e018e 100644 --- a/indra/newview/lltoastalertpanel.h +++ b/indra/newview/lltoastalertpanel.h @@ -113,6 +113,7 @@ private: LLFrameTimer mDefaultBtnTimer; // For Dialogs that take a line as text as input: LLLineEditor* mLineEditor; + LLHandle mPreviouslyFocusedView; }; -- cgit v1.2.3