From 566eb9e59d7ef1abff1e4fa8d774dc7060c949e2 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Sun, 8 Aug 2010 12:28:38 +0000 Subject: [PATCH] Only remove settings windows as created by plug-ins when unloading all --- src/phone.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/phone.c b/src/phone.c index d11e9e3..4a7c945 100644 --- a/src/phone.c +++ b/src/phone.c @@ -2157,11 +2157,24 @@ void phone_show_write(Phone * phone, gboolean show, ...) /* phone_unload_all */ void phone_unload_all(Phone * phone) { + gboolean valid; + GtkTreeModel * model; + GtkTreeIter iter; size_t i; PhonePlugin * plugin; /* view */ - gtk_list_store_clear(phone->se_store); + model = GTK_TREE_MODEL(phone->se_store); + for(valid = gtk_tree_model_get_iter_first(model, &iter); valid == TRUE;) + { + plugin = NULL; + gtk_tree_model_get(model, &iter, PHONE_SETTINGS_COLUMN_PLUGIN, + &plugin, -1); + if(plugin == NULL) + valid = gtk_tree_model_iter_next(model, &iter); + else + valid = gtk_list_store_remove(phone->se_store, &iter); + } /* triggers */ for(i = 0; i < phone->triggers_cnt; i++) free(phone->triggers[i].trigger);