From b697e03121396e7db1a66d07369fdb213f7ed678 Mon Sep 17 00:00:00 2001 From: Rene Gollent Date: Thu, 9 Jun 2011 19:39:26 +0000 Subject: [PATCH] * Create and store a messenger to the team window at creation time. Use said messenger to correctly resolve the TODO previously attempted in r42066. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42075 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../user_interface/gui/GraphicalUserInterface.cpp | 12 ++++++------ .../user_interface/gui/GraphicalUserInterface.h | 2 ++ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/apps/debugger/user_interface/gui/GraphicalUserInterface.cpp b/src/apps/debugger/user_interface/gui/GraphicalUserInterface.cpp index 3737876c94..9c9f519473 100644 --- a/src/apps/debugger/user_interface/gui/GraphicalUserInterface.cpp +++ b/src/apps/debugger/user_interface/gui/GraphicalUserInterface.cpp @@ -14,13 +14,15 @@ GraphicalUserInterface::GraphicalUserInterface() : - fTeamWindow(NULL) + fTeamWindow(NULL), + fTeamWindowMessenger(NULL) { } GraphicalUserInterface::~GraphicalUserInterface() { + delete fTeamWindowMessenger; } @@ -29,6 +31,7 @@ GraphicalUserInterface::Init(Team* team, UserInterfaceListener* listener) { try { fTeamWindow = TeamWindow::Create(team, listener); + fTeamWindowMessenger = new BMessenger(fTeamWindow); } catch (...) { // TODO: Notify the user! ERROR("Error: Failed to create team window!\n"); @@ -50,11 +53,8 @@ void GraphicalUserInterface::Terminate() { // quit window - if (fTeamWindow != NULL) { - BMessenger messenger(fTeamWindow); - if (messenger.IsValid() && messenger.LockTarget()) - fTeamWindow->Quit(); - } + if (fTeamWindowMessenger && fTeamWindowMessenger->LockTarget()) + fTeamWindow->Quit(); } diff --git a/src/apps/debugger/user_interface/gui/GraphicalUserInterface.h b/src/apps/debugger/user_interface/gui/GraphicalUserInterface.h index 5d23f27928..5c47be899b 100644 --- a/src/apps/debugger/user_interface/gui/GraphicalUserInterface.h +++ b/src/apps/debugger/user_interface/gui/GraphicalUserInterface.h @@ -9,6 +9,7 @@ #include "UserInterface.h" +class BMessenger; class TeamWindow; @@ -33,6 +34,7 @@ public: private: TeamWindow* fTeamWindow; + BMessenger* fTeamWindowMessenger; };