From 12a9a71db61beed2755d9916f454a61500613630 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Sat, 18 Aug 2012 13:48:47 -0400 Subject: [PATCH] Use a quit bool in B_ABOUT_REQUESTED to indicate that the about window has quit instead of using kAboutWindowClosed message. This prevents message signature clashes. --- headers/private/shared/AboutWindow.h | 2 -- src/apps/activitymonitor/ActivityView.cpp | 12 ++++++++---- src/apps/deskcalc/CalcView.cpp | 12 ++++++++---- src/apps/processcontroller/ProcessController.cpp | 12 ++++++++---- src/kits/shared/AboutWindow.cpp | 8 ++++++-- src/preferences/locale/LocalePreflet.cpp | 12 ++++++++---- 6 files changed, 38 insertions(+), 20 deletions(-) diff --git a/headers/private/shared/AboutWindow.h b/headers/private/shared/AboutWindow.h index c314a7c5f8..7c5b789449 100644 --- a/headers/private/shared/AboutWindow.h +++ b/headers/private/shared/AboutWindow.h @@ -11,8 +11,6 @@ #include -const int32 kAboutWindowClosed = 'abwc'; - class AboutView; class BPoint; class BHandler; diff --git a/src/apps/activitymonitor/ActivityView.cpp b/src/apps/activitymonitor/ActivityView.cpp index 13959ccbbf..20113b8a9d 100644 --- a/src/apps/activitymonitor/ActivityView.cpp +++ b/src/apps/activitymonitor/ActivityView.cpp @@ -1112,6 +1112,13 @@ ActivityView::MessageReceived(BMessage* message) switch (message->what) { case B_ABOUT_REQUESTED: + { + bool quit = false; + if (message->FindBool("quit", &quit) == B_OK && quit) { + fAboutWindow = NULL; + break; + } + if (fAboutWindow == NULL) { fAboutWindow = new BAboutWindow(this, kAppName, kSignature); fAboutWindow->AddCopyright(2008, "Haiku, Inc."); @@ -1120,10 +1127,7 @@ ActivityView::MessageReceived(BMessage* message) fAboutWindow->Activate(); break; - - case kAboutWindowClosed: - fAboutWindow = NULL; - break; + } case kMsgUpdateResolution: { diff --git a/src/apps/deskcalc/CalcView.cpp b/src/apps/deskcalc/CalcView.cpp index 814c36f543..6568a9b479 100644 --- a/src/apps/deskcalc/CalcView.cpp +++ b/src/apps/deskcalc/CalcView.cpp @@ -270,6 +270,13 @@ CalcView::MessageReceived(BMessage* message) // (replicant) about box requested case B_ABOUT_REQUESTED: + { + bool quit = false; + if (message->FindBool("quit", &quit) == B_OK && quit) { + fAboutWindow = NULL; + break; + } + if (fAboutWindow == NULL) { // create the about window const char* extraCopyrights[] = { @@ -285,10 +292,7 @@ CalcView::MessageReceived(BMessage* message) fAboutWindow->Activate(); break; - - case kAboutWindowClosed: - fAboutWindow = NULL; - break; + } case MSG_UNFLASH_KEY: { diff --git a/src/apps/processcontroller/ProcessController.cpp b/src/apps/processcontroller/ProcessController.cpp index cbecafe1c4..660ff2497b 100644 --- a/src/apps/processcontroller/ProcessController.cpp +++ b/src/apps/processcontroller/ProcessController.cpp @@ -426,6 +426,13 @@ ProcessController::MessageReceived(BMessage *message) } case B_ABOUT_REQUESTED: + { + bool quit = false; + if (message->FindBool("quit", &quit) == B_OK && quit) { + fAboutWindow = NULL; + break; + } + if (fAboutWindow == NULL) { const char* extraCopyrights[] = { "1997-2001 Georges-Edouard Berenger", @@ -446,10 +453,7 @@ ProcessController::MessageReceived(BMessage *message) fAboutWindow->Activate(); break; - - case kAboutWindowClosed: - fAboutWindow = NULL; - break; + } default: BView::MessageReceived(message); diff --git a/src/kits/shared/AboutWindow.cpp b/src/kits/shared/AboutWindow.cpp index c480033bbd..e5def2f31f 100644 --- a/src/kits/shared/AboutWindow.cpp +++ b/src/kits/shared/AboutWindow.cpp @@ -248,8 +248,12 @@ BAboutWindow::QuitRequested() if (fCaller != NULL) { status_t status; BMessenger messenger(fCaller, NULL, &status); - if (status == B_OK && messenger.IsValid()) - messenger.SendMessage(new BMessage(kAboutWindowClosed)); + if (status == B_OK && messenger.IsValid()) { + BMessage* message = new BMessage(B_ABOUT_REQUESTED); + message->AddBool("quit", true); + messenger.SendMessage(message); + delete message; + } } return true; diff --git a/src/preferences/locale/LocalePreflet.cpp b/src/preferences/locale/LocalePreflet.cpp index 81dc7eda44..d8945f27ef 100644 --- a/src/preferences/locale/LocalePreflet.cpp +++ b/src/preferences/locale/LocalePreflet.cpp @@ -73,6 +73,13 @@ LocalePreflet::MessageReceived(BMessage* message) break; case B_ABOUT_REQUESTED: + { + bool quit = false; + if (message->FindBool("quit", &quit) == B_OK && quit) { + fAboutWindow = NULL; + break; + } + if (fAboutWindow == NULL) { const char* authors[] = { "Axel Dörfler", @@ -89,10 +96,7 @@ LocalePreflet::MessageReceived(BMessage* message) fAboutWindow->Activate(); break; - - case kAboutWindowClosed: - fAboutWindow = NULL; - break; + } default: BApplication::MessageReceived(message);