about summary refs log tree commit diff stats
path: root/src/ui/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/core.c')
-rw-r--r--src/ui/core.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/ui/core.c b/src/ui/core.c
index f72ec732..dc9cb73b 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -829,11 +829,13 @@ _ui_win_has_unsaved_form(int num)
 {
     ProfWin *window = wins_get_by_num(num);
 
-    if (window->type != WIN_MUC_CONFIG) {
+    if (window->type == WIN_MUC_CONFIG) {
+        ProfMucConfWin *confwin = (ProfMucConfWin*)window;
+        assert(confwin->memcheck == PROFCONFWIN_MEMCHECK);
+        return confwin->form->modified;
+    } else {
         return FALSE;
     }
-
-    return win_has_modified_form(window);
 }
 
 static gboolean
@@ -3017,7 +3019,9 @@ _win_show_history(int win_index, const char * const contact)
 {
     ProfWin *window = wins_get_by_num(win_index);
     if (window->type == WIN_CHAT) {
-        if (win_chat_history_shown(window)) {
+        ProfChatWin *chatwin = (ProfChatWin*) window;
+        assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK);
+        if (!chatwin->history_shown) {
             Jid *jid = jid_create(jabber_get_fulljid());
             GSList *history = chat_log_get_previous(jid->barejid, contact);
             jid_destroy(jid);
@@ -3040,7 +3044,6 @@ _win_show_history(int win_index, const char * const contact)
                 }
                 curr = g_slist_next(curr);
             }
-            ProfChatWin *chatwin = (ProfChatWin*)window;
             chatwin->history_shown = TRUE;
 
             g_slist_free_full(history, free);