From d3273878756e7042c53286ad6511927b7ad413a9 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Mon, 10 Mar 2008 00:30:04 +0000 Subject: - Fixed treeview issues with objects dialog, fixing the atk relations bug * gladeui/glade-editor-property.c: - Fixed treeview issues with objects dialog, fixing the atk relations bug 512081. svn path=/trunk/; revision=1716 --- ChangeLog | 4 +++- gladeui/glade-builtins.c | 2 ++ gladeui/glade-editor-property.c | 9 +++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 76badad6..affc85d3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -13,7 +13,9 @@ - Fixed crasher bug 506713. - Reverted to real time string editing and not using focus-out handlers anymore. - + - Fixed treeview issues with objects dialog, fixing the + atk relations bug 512081. + * gladeui/glade-base-editor.c: Made sure idle handlers werent updating treeviews after the object is destroyed (also bug 506713). diff --git a/gladeui/glade-builtins.c b/gladeui/glade-builtins.c index 3f9e6a69..51ce5355 100644 --- a/gladeui/glade-builtins.c +++ b/gladeui/glade-builtins.c @@ -514,6 +514,8 @@ param_objects_validate (GParamSpec *pspec, g_type_is_a (G_OBJECT_TYPE (object), ospec->type) == FALSE) toremove = g_list_prepend (toremove, object); + + } for (list = toremove; list; list = list->next) diff --git a/gladeui/glade-editor-property.c b/gladeui/glade-editor-property.c index 96035a3c..27e6e410 100644 --- a/gladeui/glade-editor-property.c +++ b/gladeui/glade-editor-property.c @@ -2317,10 +2317,15 @@ glade_eprop_object_populate_view_real (GladeEditorProperty *eprop, glade_param_spec_objects_get_type (GLADE_PARAM_SPEC_OBJECTS(eprop->klass->pspec))); good_type = + g_type_is_a + (widget->adaptor->type, + glade_param_spec_objects_get_type + (GLADE_PARAM_SPEC_OBJECTS(eprop->klass->pspec))) || glade_util_class_implements_interface (widget->adaptor->type, glade_param_spec_objects_get_type (GLADE_PARAM_SPEC_OBJECTS(eprop->klass->pspec))); + } else { @@ -2435,6 +2440,7 @@ glade_eprop_object_selected (GtkCellRendererToggle *cell, radio = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (model), "radio-list")); + gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, OBJ_COLUMN_SELECTED, &enabled, -1); @@ -2771,8 +2777,11 @@ glade_eprop_objects_selected_widget (GtkTreeModel *model, OBJ_COLUMN_SELECTED, &selected, OBJ_COLUMN_WIDGET, &widget, -1); + if (selected) + { *ret = g_list_append (*ret, widget->object); + } return FALSE; } -- cgit v1.2.1