diff 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
line wrap: on
line diff
--- a/mcabber/mcabber/commands.c	Wed Dec 21 20:43:58 2016 +0100
+++ b/mcabber/mcabber/commands.c	Tue Nov 01 08:39:07 2016 +0100
@@ -602,7 +602,7 @@
       lock = !(buddy_getflags(bud) & ROSTER_FLAG_USRLOCK);
     buddy_setflags(bud, ROSTER_FLAG_USRLOCK, lock);
     if (may_need_refresh) {
-      buddylist_build();
+      buddylist_defer_build();
       update_roster = TRUE;
     }
   }
@@ -833,15 +833,15 @@
   } else if (!strcasecmp(subcmd, "hide_offline")) {
     buddylist_set_hide_offline_buddies(TRUE);
     if (current_buddy)
-      buddylist_build();
+      buddylist_defer_build();
     update_roster = TRUE;
   } else if (!strcasecmp(subcmd, "show_offline")) {
     buddylist_set_hide_offline_buddies(FALSE);
-    buddylist_build();
+    buddylist_defer_build();
     update_roster = TRUE;
   } else if (!strcasecmp(subcmd, "toggle_offline")) {
     buddylist_set_hide_offline_buddies(-1);
-    buddylist_build();
+    buddylist_defer_build();
     update_roster = TRUE;
   } else if (!strcasecmp(subcmd, "display")) {
     scr_roster_display(arg);
@@ -1257,7 +1257,7 @@
 
   buddy_hide_group(group, group_state);
 
-  buddylist_build();
+  buddylist_defer_build();
   update_roster = TRUE;
 
 do_group_return:
@@ -2627,7 +2627,7 @@
   g_free(roomname_tmp);
   g_free(nick);
   g_free(pass_utf8);
-  buddylist_build();
+  buddylist_defer_build();
   update_roster = TRUE;
   free_arg_lst(paramlst);
 }
@@ -2926,7 +2926,7 @@
   // Delete the room
   roster_del_user(buddy_getjid(bud));
   scr_update_buddy_window();
-  buddylist_build();
+  buddylist_defer_build();
   update_roster = TRUE;
 }