diff options
author | Leandro A. F. Pereira <leandro@hardinfo.org> | 2009-04-29 23:07:04 -0300 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2009-04-29 23:07:04 -0300 |
commit | 9db4d58b378d0811a836fee50292ab4a34a19297 (patch) | |
tree | 31e6dc204bbf2116839f9591e714f277f228c990 /hardinfo2/util.c | |
parent | 64f6c0ba3c0f8a7d67d813cb3498987134477d83 (diff) |
When unloading modules, clear all tree stores
Diffstat (limited to 'hardinfo2/util.c')
-rw-r--r-- | hardinfo2/util.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/hardinfo2/util.c b/hardinfo2/util.c index 27e44943..a8bb8b8c 100644 --- a/hardinfo2/util.c +++ b/hardinfo2/util.c @@ -599,7 +599,10 @@ static void module_unload(ShellModule * module) gdk_pixbuf_unref(module->icon); for (entry = module->entries; entry; entry = entry->next) { - g_free(entry->data); + ShellModuleEntry *e = (ShellModuleEntry *)entry->data; + + g_source_remove_by_user_data(e); + g_free(e); } g_slist_free(module->entries); @@ -626,10 +629,19 @@ void module_unload_all(void) gtk_tree_store_clear(GTK_TREE_STORE(shell->tree->model)); sync_manager_clear_entries(); + /* TODO FIXME clear shell::update_tbl */ + + gtk_tree_store_clear(GTK_TREE_STORE(shell->tree->model)); + gtk_tree_store_clear(GTK_TREE_STORE(shell->info->model)); + gtk_tree_store_clear(GTK_TREE_STORE(shell->moreinfo->model)); + + gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(shell->info->view), FALSE); + g_slist_free(shell->tree->modules); g_slist_free(shell->merge_ids); shell->merge_ids = NULL; shell->tree->modules = NULL; + shell->selected = NULL; } static ShellModule *module_load(gchar * filename) |