Fixed marking in messagelist
This commit is contained in:
parent
850b806bcf
commit
a1d80a0a0a
@ -80,6 +80,7 @@ class GMsgList : public gwinpick {
|
|||||||
void do_delayed();
|
void do_delayed();
|
||||||
void print_line(uint idx, uint pos, bool isbar);
|
void print_line(uint idx, uint pos, bool isbar);
|
||||||
bool handle_key(); // Handles keypress
|
bool handle_key(); // Handles keypress
|
||||||
|
void update_marks(MLst *ml);
|
||||||
void ReadMlst(int n);
|
void ReadMlst(int n);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -122,23 +123,13 @@ void GMsgList::close() {
|
|||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
|
|
||||||
void GMsgList::ReadMlst(int n) {
|
void GMsgList::update_marks(MLst *ml) {
|
||||||
|
|
||||||
MLst* ml = mlst[n];
|
|
||||||
|
|
||||||
if(ml != NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
ml = mlst[n] = new MLst;
|
|
||||||
throw_new(ml);
|
|
||||||
|
|
||||||
ml->high = 0;
|
ml->high = 0;
|
||||||
|
|
||||||
strcpy(ml->marks, " ");
|
strcpy(ml->marks, " ");
|
||||||
|
|
||||||
ml->msgno = AA->Msgn.CvtReln(n + 1);
|
if(AA->bookmark == ml->msgno) {
|
||||||
|
|
||||||
if(AA->bookmark == AA->Msgn.CvtReln(n + 1)) {
|
|
||||||
ml->marks[0] = MMRK_BOOK;
|
ml->marks[0] = MMRK_BOOK;
|
||||||
ml->high |= MLST_HIGH_BOOK;
|
ml->high |= MLST_HIGH_BOOK;
|
||||||
}
|
}
|
||||||
@ -149,6 +140,24 @@ void GMsgList::ReadMlst(int n) {
|
|||||||
ml->high |= MLST_HIGH_MARK;
|
ml->high |= MLST_HIGH_MARK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------
|
||||||
|
|
||||||
|
void GMsgList::ReadMlst(int n) {
|
||||||
|
|
||||||
|
MLst* ml = mlst[n];
|
||||||
|
|
||||||
|
if(ml != NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ml = mlst[n] = new MLst;
|
||||||
|
throw_new(ml);
|
||||||
|
|
||||||
|
ml->msgno = AA->Msgn.CvtReln(n + 1);
|
||||||
|
|
||||||
|
update_marks(ml);
|
||||||
|
|
||||||
if(AA->Msglistfast()) {
|
if(AA->Msglistfast()) {
|
||||||
AA->LoadHdr(&msg, ml->msgno);
|
AA->LoadHdr(&msg, ml->msgno);
|
||||||
@ -400,6 +409,7 @@ bool GMsgList::handle_key() {
|
|||||||
else {
|
else {
|
||||||
AA->Mark.Add(mlst[index]->msgno);
|
AA->Mark.Add(mlst[index]->msgno);
|
||||||
}
|
}
|
||||||
|
update_marks(mlst[index]);
|
||||||
}
|
}
|
||||||
if(index < maximum_index)
|
if(index < maximum_index)
|
||||||
cursor_down();
|
cursor_down();
|
||||||
|
Reference in New Issue
Block a user