Blob Blame History Raw
From 109702a42d08e52f54c5f740b370a3ec9a3a5d16 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Wed, 30 Jul 2014 13:44:02 +0200
Subject: [PATCH 17/20] gui: clear the sensitive cache between two event runs

Was causing a SIGSEGV.

Related to rhbz#1069917

Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
 src/gui-wizard-gtk/wizard.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/src/gui-wizard-gtk/wizard.c b/src/gui-wizard-gtk/wizard.c
index 5c4bd6a..fc44547 100644
--- a/src/gui-wizard-gtk/wizard.c
+++ b/src/gui-wizard-gtk/wizard.c
@@ -1123,6 +1123,31 @@ static void remove_tabs_from_notebook(GtkNotebook *notebook)
         */
         gtk_notebook_remove_page(notebook, 0); //we need to always the page 0
     }
+
+    /* Turn off the changed callback during the update */
+    g_signal_handler_block(g_tv_sensitive_sel, g_tv_sensitive_sel_hndlr);
+
+    g_current_highlighted_word = NULL;
+
+    GtkTreeIter iter;
+    gboolean valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(g_ls_sensitive_list), &iter);
+    while (valid)
+    {
+        char *text = NULL;
+        search_item_t *word = NULL;
+
+        gtk_tree_model_get(GTK_TREE_MODEL(g_ls_sensitive_list), &iter,
+                SEARCH_COLUMN_TEXT, &text,
+                SEARCH_COLUMN_ITEM, &word,
+                -1);
+
+        free(text);
+        free(word);
+
+        valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(g_ls_sensitive_list), &iter);
+    }
+    gtk_list_store_clear(g_ls_sensitive_list);
+    g_signal_handler_unblock(g_tv_sensitive_sel, g_tv_sensitive_sel_hndlr);
 }
 
 static void append_item_to_ls_details(gpointer name, gpointer value, gpointer data)
-- 
2.0.4