diff --git a/src/servers/mail/MailDaemonApplication.cpp b/src/servers/mail/MailDaemonApplication.cpp index b46bc4a108..dc1d2fe39b 100644 --- a/src/servers/mail/MailDaemonApplication.cpp +++ b/src/servers/mail/MailDaemonApplication.cpp @@ -372,22 +372,27 @@ MailDaemonApplication::MessageReceived(BMessage* msg) case B_QUERY_UPDATE: { - int32 what; - msg->FindInt32("opcode", &what); - switch (what) { + int32 previousCount = fNewMessages; + + int32 opcode = msg->GetInt32("opcode", -1); + switch (opcode) { case B_ENTRY_CREATED: fNewMessages++; break; case B_ENTRY_REMOVED: fNewMessages--; break; + default: + return; } _UpdateNewMessagesNotification(); if (fSettingsFile.ShowStatusWindow() - != B_MAIL_SHOW_STATUS_WINDOW_NEVER) + != B_MAIL_SHOW_STATUS_WINDOW_NEVER + && previousCount < fNewMessages) { fNotification->Send(); + } break; }