Chat room windows now created only after successful join

This commit is contained in:
James Booth
2014-04-21 00:37:04 +01:00
parent 9a55d8ad19
commit 2c15aba92a
17 changed files with 89 additions and 102 deletions

View File

@@ -1272,7 +1272,7 @@ _ui_outgoing_msg(const char * const from, const char * const to,
}
static void
_ui_room_join(char *room, gboolean focus)
_ui_room_join(const char * const room, gboolean focus)
{
ProfWin *window = wins_get_by_recipient(room);
int num = 0;
@@ -1289,7 +1289,8 @@ _ui_room_join(char *room, gboolean focus)
} else {
status_bar_active(num);
ProfWin *console = wins_get_console();
win_vprint_line(console, '!', COLOUR_ONLINE, "-> Autojoined %s (%d).", room, num);
char *nick = muc_get_room_nick(room);
win_vprint_line(console, '!', COLOUR_TYPING, "-> Autojoined %s as %s (%d).", room, nick, num);
win_update_virtual(console);
}
}
@@ -1349,6 +1350,12 @@ _ui_room_roster(const char * const room, GList *roster, const char * const prese
}
}
static void
_ui_handle_room_join_error(const char * const room, const char * const err)
{
cons_show_error("Error joining room %s, reason: %s", room, err);
}
static void
_ui_room_member_offline(const char * const room, const char * const nick)
{
@@ -1979,4 +1986,5 @@ ui_init_module(void)
ui_handle_stanza = _ui_handle_stanza;
ui_create_xmlconsole_win = _ui_create_xmlconsole_win;
ui_xmlconsole_exists = _ui_xmlconsole_exists;
ui_handle_room_join_error = _ui_handle_room_join_error;
}

View File

@@ -102,7 +102,7 @@ void (*ui_disconnected)(void);
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)(char *room, gboolean focus);
void (*ui_room_join)(const char * const room, gboolean focus);
void (*ui_room_roster)(const char * const room, GList *roster, const char * const presence);
void (*ui_room_history)(const char * const room_jid, const char * const nick,
GTimeVal tv_stamp, const char * const message);
@@ -132,6 +132,7 @@ void (*ui_handle_recipient_not_found)(const char * const recipient, const char *
void (*ui_handle_recipient_error)(const char * const recipient, const char * const err_msg);
void (*ui_handle_error)(const char * const err_msg);
void (*ui_clear_win_title)(void);
void (*ui_handle_room_join_error)(const char * const room, const char * const err);
// contact status functions
void (*ui_status_room)(const char * const contact);