about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/command/commands.c2
-rw-r--r--src/ui/core.c10
-rw-r--r--src/ui/ui.h1
3 files changed, 12 insertions, 1 deletions
diff --git a/src/command/commands.c b/src/command/commands.c
index 60e07835..ecd8a7de 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -1728,7 +1728,7 @@ cmd_join(gchar **args, struct cmd_help_t help)
         presence_join_room(room, nick, passwd);
         muc_join(room, nick, passwd, FALSE);
     } else if (muc_roster_complete(room)) {
-        ui_room_join(room, TRUE);
+        ui_switch_to_room(room);
     }
 
     jid_destroy(room_arg);
diff --git a/src/ui/core.c b/src/ui/core.c
index 0ab87f13..67a8f1a1 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -1329,6 +1329,15 @@ _ui_room_join(const char * const room, gboolean focus)
 }
 
 static void
+_ui_switch_to_room(const char * const room)
+{
+    ProfWin *window = wins_get_by_recipient(room);
+    int num = wins_get_num(window);
+    num = wins_get_num(window);
+    ui_switch_win(num);
+}
+
+static void
 _ui_room_role_change(const char * const room, const char * const role)
 {
     ProfWin *window = wins_get_by_recipient(room);
@@ -3059,5 +3068,6 @@ ui_init_module(void)
     ui_room_hide_occupants = _ui_room_hide_occupants;
     ui_room_role_change = _ui_room_role_change;
     ui_room_affiliation_change = _ui_room_affiliation_change;
+    ui_switch_to_room = _ui_switch_to_room;
 }
 
diff --git a/src/ui/ui.h b/src/ui/ui.h
index 9c1888f6..add0a3d2 100644
--- a/src/ui/ui.h
+++ b/src/ui/ui.h
@@ -130,6 +130,7 @@ void (*ui_recipient_gone)(const char * const barejid);
 void (*ui_outgoing_msg)(const char * const from, const char * const to,
     const char * const message);
 void (*ui_room_join)(const char * const room, gboolean focus);
+void (*ui_switch_to_room)(const char * const room);
 void (*ui_room_role_change)(const char * const room, const char * const role);
 void (*ui_room_affiliation_change)(const char * const room, const char * const affiliation);
 void (*ui_room_roster)(const char * const room, GList *roster, const char * const presence);