From 91a555aa0c46cd9afff125472aa7366a3fd4ec1d Mon Sep 17 00:00:00 2001 From: Jens Granseuer Date: Sat, 11 Aug 2007 13:17:31 +0000 Subject: [PATCH] make sure we have a selection before trying to get the data (bug #465431) 2007-08-11 Jens Granseuer * appearance-style.c: (conv_from_widget_cb): make sure we have a selection before trying to get the data (bug #465431) svn path=/trunk/; revision=7987 --- capplets/appearance/ChangeLog | 5 +++++ capplets/appearance/appearance-style.c | 21 ++++++++++++--------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/capplets/appearance/ChangeLog b/capplets/appearance/ChangeLog index a62a9c396..9b4527a47 100644 --- a/capplets/appearance/ChangeLog +++ b/capplets/appearance/ChangeLog @@ -1,3 +1,8 @@ +2007-08-11 Jens Granseuer + + * appearance-style.c: (conv_from_widget_cb): make sure we have a + selection before trying to get the data (bug #465431) + 2007-08-11 Jens Granseuer * theme-installer.c: (gnome_theme_install_from_uri): fix leak diff --git a/capplets/appearance/appearance-style.c b/capplets/appearance/appearance-style.c index aad8e1767..14e64ee09 100644 --- a/capplets/appearance/appearance-style.c +++ b/capplets/appearance/appearance-style.c @@ -115,23 +115,26 @@ conv_to_widget_cb (GConfPropertyEditor *peditor, const GConfValue *value) static GConfValue * conv_from_widget_cb (GConfPropertyEditor *peditor, const GConfValue *value) { - GConfValue *new_value; - gchar *list_value = NULL; + GConfValue *new_value = NULL; GtkTreeIter iter; GtkTreeSelection *selection; GtkTreeModel *model; GtkTreeView *list; list = GTK_TREE_VIEW (gconf_property_editor_get_ui_control (peditor)); - model = gtk_tree_view_get_model (list); - selection = gtk_tree_view_get_selection (list); - gtk_tree_selection_get_selected (selection, NULL, &iter); - gtk_tree_model_get (model, &iter, COL_NAME, &list_value, -1); - new_value = gconf_value_new (GCONF_VALUE_STRING); - gconf_value_set_string (new_value, list_value); - g_free (list_value); + if (gtk_tree_selection_get_selected (selection, &model, &iter)) { + gchar *list_value; + + gtk_tree_model_get (model, &iter, COL_NAME, &list_value, -1); + + if (list_value) { + new_value = gconf_value_new (GCONF_VALUE_STRING); + gconf_value_set_string (new_value, list_value); + g_free (list_value); + } + } return new_value; }