Mercurial > ~mikael > mcabber > hg
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 { |