mcabber/src/roster.c
changeset 331 1510dda4ad71
parent 330 a9013124ede6
child 336 eb994ee40029
equal deleted inserted replaced
330:a9013124ede6 331:1510dda4ad71
   529 {
   529 {
   530   roster *roster_usr = rosterdata;
   530   roster *roster_usr = rosterdata;
   531   GSList **sl_group;
   531   GSList **sl_group;
   532   GSList *sl_clone;
   532   GSList *sl_clone;
   533   roster *roster_clone;
   533   roster *roster_clone;
       
   534   int is_alternate;
   534 
   535 
   535   // A group has no group :)
   536   // A group has no group :)
   536   if (roster_usr->type & ROSTER_TYPE_GROUP) return;
   537   if (roster_usr->type & ROSTER_TYPE_GROUP) return;
   537 
   538 
   538   // Remove the buddy from current group
   539   // Remove the buddy from current group
   555   // If new new group is folded, the curren_buddy will be lost, and the
   556   // If new new group is folded, the curren_buddy will be lost, and the
   556   // chat window won't be correctly refreshed.  So we make sure it isn't...
   557   // chat window won't be correctly refreshed.  So we make sure it isn't...
   557   ((roster*)((GSList*)roster_clone->list)->data)->flags &= ~ROSTER_FLAG_HIDE;
   558   ((roster*)((GSList*)roster_clone->list)->data)->flags &= ~ROSTER_FLAG_HIDE;
   558 
   559 
   559   // Little trick to have current_body pointing to the cloned buddy
   560   // Little trick to have current_body pointing to the cloned buddy
       
   561   is_alternate = (alternate_buddy == current_buddy);
   560   buddylist = g_list_append(buddylist, roster_clone);
   562   buddylist = g_list_append(buddylist, roster_clone);
   561   current_buddy = g_list_find(buddylist, roster_clone);
   563   current_buddy = g_list_find(buddylist, roster_clone);
       
   564   if (is_alternate)
       
   565     alternate_buddy = current_buddy;
   562 
   566 
   563   buddylist_build();
   567   buddylist_build();
   564 }
   568 }
   565 
   569 
   566 void buddy_setname(gpointer rosterdata, char *newname)
   570 void buddy_setname(gpointer rosterdata, char *newname)