about summary refs log tree commit diff stats
path: root/src/server_events.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/server_events.c')
-rw-r--r--src/server_events.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/server_events.c b/src/server_events.c
index 3916fc41..631a190d 100644
--- a/src/server_events.c
+++ b/src/server_events.c
@@ -719,10 +719,16 @@ handle_muc_self_online(const char * const room, const char * const nick, gboolea
 
     // check for change in role/affiliation
     } else {
-        if (g_strcmp0(role, old_role) != 0) {
+        // both changed
+        if ((g_strcmp0(role, old_role) != 0) && (g_strcmp0(affiliation, old_affiliation) != 0)) {
+            ui_room_role_and_affiliation_change(room, role, affiliation);
+
+        // role changed
+        } else if (g_strcmp0(role, old_role) != 0) {
             ui_room_role_change(room, role);
-        }
-        if (g_strcmp0(affiliation, old_affiliation) != 0) {
+
+        // affiliation changed
+        } else if (g_strcmp0(affiliation, old_affiliation) != 0) {
             ui_room_affiliation_change(room, affiliation);
         }
     }