mcabber/src/commands.c
changeset 1418 f69028ca6296
parent 1416 7f0da8de2a7d
child 1422 3cd104b41f26
equal deleted inserted replaced
1417:783b47c9d963 1418:f69028ca6296
  1814 
  1814 
  1815   strip_arg_special_chars(newgroupname);
  1815   strip_arg_special_chars(newgroupname);
  1816 
  1816 
  1817   group_utf8 = to_utf8(newgroupname);
  1817   group_utf8 = to_utf8(newgroupname);
  1818   if (strcmp(oldgroupname, group_utf8)) {
  1818   if (strcmp(oldgroupname, group_utf8)) {
       
  1819     guint msgflag;
       
  1820 
  1819     jb_updatebuddy(bjid, name, *group_utf8 ? group_utf8 : NULL);
  1821     jb_updatebuddy(bjid, name, *group_utf8 ? group_utf8 : NULL);
  1820     scr_RosterUp();
  1822     scr_RosterUp();
       
  1823 
       
  1824     // If the buddy has a pending message flag,
       
  1825     // we remove it temporarily in order to reset the global group
       
  1826     // flag.  We set it back once the buddy is in the new group,
       
  1827     // which will update the new group's flag.
       
  1828     msgflag = buddy_getflags(bud) & ROSTER_FLAG_MSG;
       
  1829     if (msgflag)
       
  1830       roster_msg_setflag(bjid, FALSE, FALSE);
  1821     buddy_setgroup(bud, group_utf8);
  1831     buddy_setgroup(bud, group_utf8);
       
  1832     if (msgflag)
       
  1833       roster_msg_setflag(bjid, FALSE, TRUE);
  1822   }
  1834   }
  1823 
  1835 
  1824   g_free(group_utf8);
  1836   g_free(group_utf8);
  1825   g_free(newgroupname);
  1837   g_free(newgroupname);
  1826   update_roster = TRUE;
  1838   update_roster = TRUE;