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);