Removed the handling of B_QUIT_REQUESTED in BApplication::DispatchMessage().
It's already done in BLooper. Now we additionally send a reply to it, when the message comes from the registrar on shutdown. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13419 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -856,12 +856,6 @@ BApplication::DispatchMessage(BMessage *message, BHandler *handler)
|
|||||||
AboutRequested();
|
AboutRequested();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case B_QUIT_REQUESTED:
|
|
||||||
DBG(message->PrintToStream());
|
|
||||||
if (QuitRequested())
|
|
||||||
Quit();
|
|
||||||
break;
|
|
||||||
|
|
||||||
case B_PULSE:
|
case B_PULSE:
|
||||||
Pulse();
|
Pulse();
|
||||||
break;
|
break;
|
||||||
|
|||||||
+7
-16
@@ -1331,24 +1331,15 @@ BLooper::task_looper()
|
|||||||
void
|
void
|
||||||
BLooper::do_quit_requested(BMessage *msg)
|
BLooper::do_quit_requested(BMessage *msg)
|
||||||
{
|
{
|
||||||
/** @note
|
|
||||||
I couldn't figure out why do_quit_requested() was necessary; why not
|
|
||||||
just call Quit()? Then, while writing the PostMessage() code, I
|
|
||||||
realized that the sender of the B_QUIT_REQUESTED message just might
|
|
||||||
be waiting for a reply. A quick test, and yes, we get a reply
|
|
||||||
which consists of:
|
|
||||||
what: B_REPLY
|
|
||||||
"result" (bool) return of QuitRequested()
|
|
||||||
"thread" (int32) the looper's thread id
|
|
||||||
|
|
||||||
While Quit() could use fLastMessage, it makes more sense that
|
|
||||||
do_quit_requested() would handle it since it gets passed the
|
|
||||||
message.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool isQuitting = QuitRequested();
|
bool isQuitting = QuitRequested();
|
||||||
|
|
||||||
if (msg->IsSourceWaiting()) {
|
// We send a reply to the sender, when they're waiting for a reply or
|
||||||
|
// if the request message contains a boolean "_shutdown_" field with value
|
||||||
|
// true. In the latter case the message came from the registrar, asking
|
||||||
|
// the application to shut down.
|
||||||
|
bool shutdown;
|
||||||
|
if (msg->IsSourceWaiting()
|
||||||
|
|| (msg->FindBool("_shutdown_", &shutdown) == B_OK && shutdown)) {
|
||||||
BMessage ReplyMsg(B_REPLY);
|
BMessage ReplyMsg(B_REPLY);
|
||||||
ReplyMsg.AddBool("result", isQuitting);
|
ReplyMsg.AddBool("result", isQuitting);
|
||||||
ReplyMsg.AddInt32("thread", fTaskID);
|
ReplyMsg.AddInt32("thread", fTaskID);
|
||||||
|
|||||||
Reference in New Issue
Block a user