mcabber/src/roster.c
changeset 860 a8fadbd97858
parent 848 a9161d2dc414
child 863 4f1a93faffea
equal deleted inserted replaced
859:cb2a3a1d985f 860:a8fadbd97858
   531 // Update the unread messages list too.
   531 // Update the unread messages list too.
   532 void roster_msg_setflag(const char *jid, guint value)
   532 void roster_msg_setflag(const char *jid, guint value)
   533 {
   533 {
   534   GSList *sl_user;
   534   GSList *sl_user;
   535   roster *roster_usr, *roster_grp;
   535   roster *roster_usr, *roster_grp;
       
   536   int new_roster_item = FALSE;
   536 
   537 
   537   sl_user = roster_find(jid, jidsearch,
   538   sl_user = roster_find(jid, jidsearch,
   538                         ROSTER_TYPE_USER|ROSTER_TYPE_ROOM|ROSTER_TYPE_AGENT);
   539                         ROSTER_TYPE_USER|ROSTER_TYPE_ROOM|ROSTER_TYPE_AGENT);
   539   // If we can't find it, we add it
   540   // If we can't find it, we add it
   540   if (sl_user == NULL) {
   541   if (sl_user == NULL) {
   541     sl_user = roster_add_user(jid, NULL, NULL, ROSTER_TYPE_USER, sub_none);
   542     sl_user = roster_add_user(jid, NULL, NULL, ROSTER_TYPE_USER, sub_none);
       
   543     new_roster_item = TRUE;
   542   }
   544   }
   543 
   545 
   544   roster_usr = (roster*)sl_user->data;
   546   roster_usr = (roster*)sl_user->data;
   545   roster_grp = (roster*)roster_usr->list->data;
   547   roster_grp = (roster*)roster_usr->list->data;
   546   if (value) {
   548   if (value) {
   577     else
   579     else
   578       roster_grp->flags |= ROSTER_FLAG_MSG;
   580       roster_grp->flags |= ROSTER_FLAG_MSG;
   579       // Actually the "else" part is useless, because the group
   581       // Actually the "else" part is useless, because the group
   580       // ROSTER_FLAG_MSG should already be set...
   582       // ROSTER_FLAG_MSG should already be set...
   581   }
   583   }
       
   584 
       
   585   if (buddylist && new_roster_item)
       
   586     buddylist_build();
   582 }
   587 }
   583 
   588 
   584 const char *roster_getname(const char *jid)
   589 const char *roster_getname(const char *jid)
   585 {
   590 {
   586   GSList *sl_user;
   591   GSList *sl_user;