comparison mcabber/mcabber/commands.c @ 2291:0d350e979bde

Don't rebuild the buddylist multiple times before a screen refresh
author franky
date Tue, 01 Nov 2016 08:39:07 +0100
parents 5d05e8128ef4
children f181418db215
comparison
equal deleted inserted replaced
2290:71ec41732035 2291:0d350e979bde
600 if (bud) { 600 if (bud) {
601 if (lock == -1) 601 if (lock == -1)
602 lock = !(buddy_getflags(bud) & ROSTER_FLAG_USRLOCK); 602 lock = !(buddy_getflags(bud) & ROSTER_FLAG_USRLOCK);
603 buddy_setflags(bud, ROSTER_FLAG_USRLOCK, lock); 603 buddy_setflags(bud, ROSTER_FLAG_USRLOCK, lock);
604 if (may_need_refresh) { 604 if (may_need_refresh) {
605 buddylist_build(); 605 buddylist_defer_build();
606 update_roster = TRUE; 606 update_roster = TRUE;
607 } 607 }
608 } 608 }
609 } 609 }
610 610
831 } else if (!strcasecmp(subcmd, "toggle")) { 831 } else if (!strcasecmp(subcmd, "toggle")) {
832 scr_roster_visibility(-1); 832 scr_roster_visibility(-1);
833 } else if (!strcasecmp(subcmd, "hide_offline")) { 833 } else if (!strcasecmp(subcmd, "hide_offline")) {
834 buddylist_set_hide_offline_buddies(TRUE); 834 buddylist_set_hide_offline_buddies(TRUE);
835 if (current_buddy) 835 if (current_buddy)
836 buddylist_build(); 836 buddylist_defer_build();
837 update_roster = TRUE; 837 update_roster = TRUE;
838 } else if (!strcasecmp(subcmd, "show_offline")) { 838 } else if (!strcasecmp(subcmd, "show_offline")) {
839 buddylist_set_hide_offline_buddies(FALSE); 839 buddylist_set_hide_offline_buddies(FALSE);
840 buddylist_build(); 840 buddylist_defer_build();
841 update_roster = TRUE; 841 update_roster = TRUE;
842 } else if (!strcasecmp(subcmd, "toggle_offline")) { 842 } else if (!strcasecmp(subcmd, "toggle_offline")) {
843 buddylist_set_hide_offline_buddies(-1); 843 buddylist_set_hide_offline_buddies(-1);
844 buddylist_build(); 844 buddylist_defer_build();
845 update_roster = TRUE; 845 update_roster = TRUE;
846 } else if (!strcasecmp(subcmd, "display")) { 846 } else if (!strcasecmp(subcmd, "display")) {
847 scr_roster_display(arg); 847 scr_roster_display(arg);
848 } else if (!strcasecmp(subcmd, "item_lock")) { 848 } else if (!strcasecmp(subcmd, "item_lock")) {
849 roster_buddylock(arg, 1); 849 roster_buddylock(arg, 1);
1255 if (group_state != group_unfold && leave_buddywindow) 1255 if (group_state != group_unfold && leave_buddywindow)
1256 scr_roster_prev_group(); 1256 scr_roster_prev_group();
1257 1257
1258 buddy_hide_group(group, group_state); 1258 buddy_hide_group(group, group_state);
1259 1259
1260 buddylist_build(); 1260 buddylist_defer_build();
1261 update_roster = TRUE; 1261 update_roster = TRUE;
1262 1262
1263 do_group_return: 1263 do_group_return:
1264 free_arg_lst(paramlst); 1264 free_arg_lst(paramlst);
1265 } 1265 }
2625 scr_LogPrint(LPRINT_LOGNORM, "Sent a join request to <%s>...", roomname); 2625 scr_LogPrint(LPRINT_LOGNORM, "Sent a join request to <%s>...", roomname);
2626 2626
2627 g_free(roomname_tmp); 2627 g_free(roomname_tmp);
2628 g_free(nick); 2628 g_free(nick);
2629 g_free(pass_utf8); 2629 g_free(pass_utf8);
2630 buddylist_build(); 2630 buddylist_defer_build();
2631 update_roster = TRUE; 2631 update_roster = TRUE;
2632 free_arg_lst(paramlst); 2632 free_arg_lst(paramlst);
2633 } 2633 }
2634 2634
2635 static void room_invite(gpointer bud, char *arg) 2635 static void room_invite(gpointer bud, char *arg)
2924 return; 2924 return;
2925 } 2925 }
2926 // Delete the room 2926 // Delete the room
2927 roster_del_user(buddy_getjid(bud)); 2927 roster_del_user(buddy_getjid(bud));
2928 scr_update_buddy_window(); 2928 scr_update_buddy_window();
2929 buddylist_build(); 2929 buddylist_defer_build();
2930 update_roster = TRUE; 2930 update_roster = TRUE;
2931 } 2931 }
2932 2932
2933 static void room_topic(gpointer bud, char *arg) 2933 static void room_topic(gpointer bud, char *arg)
2934 { 2934 {