equal
deleted
inserted
replaced
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) |