The read-next button was not working in a tracker query window because the message was marked as read too early. In this case the

mail left the unread query and the next message can't be retrieved from tracker.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40747 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Clemens Zeidler
2011-02-28 23:13:09 +00:00
parent 0a1ce0a8a4
commit fecd4735be
+8 -6
View File
@@ -1479,13 +1479,12 @@ TMailWindow::MessageReceived(BMessage *msg)
break;
case M_READ:
wasReadMsg = true;
SetCurrentMessageRead(B_READ);
_UpdateReadButton();
msg->what = M_NEXTMSG;
case M_PREVMSG:
case M_NEXTMSG:
if (fRef != NULL) {
entry_ref nextRef = *fRef;
if (GetTrackerWindowFile(&nextRef, (msg->what == M_NEXTMSG))) {
TMailWindow *window = static_cast<TMailApp *>(be_app)
->FindWindow(nextRef);
@@ -1494,9 +1493,9 @@ TMailWindow::MessageReceived(BMessage *msg)
read_flags currentFlag;
if (read_read_attr(node, currentFlag) != B_OK)
currentFlag = B_UNREAD;
if (fAutoMarkRead == true)
if (fAutoMarkRead == true || wasReadMsg)
SetCurrentMessageRead(B_READ);
else if (currentFlag != B_READ && !wasReadMsg)
else if (currentFlag != B_READ)
SetCurrentMessageRead(B_SEEN);
OpenMessage(&nextRef,
@@ -1504,14 +1503,17 @@ TMailWindow::MessageReceived(BMessage *msg)
} else {
window->Activate();
//fSent = true;
if (wasReadMsg)
SetCurrentMessageRead(B_READ);
PostMessage(B_CLOSE_REQUESTED);
}
SetTrackerSelectionToCurrent();
} else {
if (wasReadMsg)
if (wasReadMsg) {
SetCurrentMessageRead(B_READ);
PostMessage(B_CLOSE_REQUESTED);
}
beep();
}
}