about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/command/commands.c4
-rw-r--r--src/ui/core.c7
2 files changed, 11 insertions, 0 deletions
diff --git a/src/command/commands.c b/src/command/commands.c
index 3bc595af..74d2bbe8 100644
--- a/src/command/commands.c
+++ b/src/command/commands.c
@@ -2060,6 +2060,10 @@ cmd_form(gchar **args, struct cmd_help_t help)
 
     if ((g_strcmp0(args[0], "submit") == 0) ||
             (g_strcmp0(args[0], "cancel") == 0)) {
+        if (current->form) {
+            cmd_autocomplete_remove_form_fields(current->form);
+        }
+
         wins_close_current();
         current = wins_get_by_recipient(room);
         if (current == NULL) {
diff --git a/src/ui/core.c b/src/ui/core.c
index 837cac3d..907c525e 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -1013,6 +1013,13 @@ _ui_close_current(void)
 static void
 _ui_close_win(int index)
 {
+    ProfWin *window = wins_get_by_num(index);
+    if (window) {
+        if (window->type == WIN_MUC_CONFIG && window->form) {
+            cmd_autocomplete_remove_form_fields(window->form);
+        }
+    }
+
     wins_close_by_num(index);
     title_bar_console();
     status_bar_current(1);