--- a/mcabber/mcabber/hooks.c Sat Sep 24 12:30:01 2016 +0200
+++ b/mcabber/mcabber/hooks.c Sat Sep 24 12:31:13 2016 +0200
@@ -568,7 +568,7 @@
roster_setstatus(bjid, rn, prio, status, status_msg, timestamp,
role_none, affil_none, NULL);
buddylist_build();
- scr_draw_roster();
+ update_roster = TRUE;
hlog_write_status(bjid, timestamp, status, status_msg);
#ifdef MODULES_ENABLE
--- a/mcabber/mcabber/screen.c Sat Sep 24 12:30:01 2016 +0200
+++ b/mcabber/mcabber/screen.c Sat Sep 24 12:31:13 2016 +0200
@@ -2158,7 +2158,6 @@
unsigned short ismsg, isgrp, ismuc, ishid, isspe;
guint isurg;
gchar *rline_locale;
- GSList *resources, *p_res;
bflags = buddy_getflags(BUDDATA(buddy));
btype = buddy_gettype(BUDDATA(buddy));
@@ -2178,17 +2177,22 @@
status = '?';
pending = ' ';
- resources = buddy_getresources(BUDDATA(buddy));
- for (p_res = resources ; p_res ; p_res = g_slist_next(p_res)) {
- guint events = buddy_resource_getevents(BUDDATA(buddy),
- p_res ? p_res->data : "");
- if ((events & ROSTER_EVENT_PAUSED) && pending != '+')
- pending = '.';
- if (events & ROSTER_EVENT_COMPOSING)
- pending = '+';
- g_free(p_res->data);
+ if (!ismuc) {
+ // There is currently no chat state support for MUC
+ GSList *resources = buddy_getresources(BUDDATA(buddy));
+ GSList *p_res;
+
+ for (p_res = resources ; p_res ; p_res = g_slist_next(p_res)) {
+ guint events = buddy_resource_getevents(BUDDATA(buddy),
+ p_res ? p_res->data : "");
+ if ((events & ROSTER_EVENT_PAUSED) && pending != '+')
+ pending = '.';
+ if (events & ROSTER_EVENT_COMPOSING)
+ pending = '+';
+ g_free(p_res->data);
+ }
+ g_slist_free(resources);
}
- g_slist_free(resources);
// Display message notice if there is a message flag, but not
// for unfolded groups.
--- a/mcabber/mcabber/xmpp_muc.c Sat Sep 24 12:30:01 2016 +0200
+++ b/mcabber/mcabber/xmpp_muc.c Sat Sep 24 12:31:13 2016 +0200
@@ -494,7 +494,7 @@
scr_WriteIncomingMessage(roomjid, msg, 0, HBB_PREFIX_INFO, 0);
// Send back an unavailable packet
xmpp_setstatus(offline, roomjid, "", TRUE);
- scr_draw_roster();
+ update_roster = TRUE;
return;
}
@@ -748,7 +748,7 @@
cmd_room_whois(room_elt->data, rname, FALSE);
}
- scr_draw_roster();
+ update_roster = TRUE;
}
void roompresence(gpointer room, void *presencedata)