diff --git a/src/command/commands.c b/src/command/commands.c index 15b740e3..c58a1588 100644 --- a/src/command/commands.c +++ b/src/command/commands.c @@ -993,6 +993,7 @@ cmd_disconnect(ProfWin *window, const char *const command, gchar **args) chat_sessions_clear(); tlscerts_clear_current(); ui_disconnected(); + ui_close_all_wins(); #ifdef HAVE_LIBGPGME p_gpg_on_disconnect(); #endif diff --git a/src/event/server_events.c b/src/event/server_events.c index 8fc32d4e..53904ca9 100644 --- a/src/event/server_events.c +++ b/src/event/server_events.c @@ -545,11 +545,13 @@ sv_ev_contact_offline(char *barejid, char *resource, char *status) ui_contact_offline(barejid, resource, status); } +#ifdef HAVE_LIBOTR ProfChatWin *chatwin = wins_get_chat(barejid); if (chatwin && otr_is_secure(barejid)) { chatwin_otr_unsecured(chatwin); otr_end_session(chatwin->barejid); } +#endif rosterwin_roster(); chat_session_remove(barejid);