[glade3] * plugins/gtk+/glade-model-data.c: Fixed crasher when double freeing the data tree in some idle



commit 793cdeb850bd3d55b596eaad01e1dea0a84ff3e1
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date:   Wed Mar 10 12:55:12 2010 -0500

    	* plugins/gtk+/glade-model-data.c: Fixed crasher when double freeing the data tree
    	  in some idle handlers (idle handlers needed for advanced focus handling/keynav), fixes crash bug 608011.
    	  Also make sure to create the adjustment with a 0 page size.

 ChangeLog                       |    6 ++++++
 plugins/gtk+/glade-model-data.c |    9 ++-------
 2 files changed, 8 insertions(+), 7 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 660dc20..46ce129 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-03-10  Tristan Van Berkom <tvb gnome org>
+
+	* plugins/gtk+/glade-model-data.c: Fixed crasher when double freeing the data tree
+	  in some idle handlers (idle handlers needed for advanced focus handling/keynav), fixes crash bug 608011.
+	  Also make sure to create the adjustment with a 0 page size.
+
 2010-03-09  Tristan Van Berkom <tvb gnome org>
 
 	* plugins/gtk+/glade-gtk.c: Fixed GtkBox & GtkTable regressions introduced
diff --git a/plugins/gtk+/glade-model-data.c b/plugins/gtk+/glade-model-data.c
index 4a45d64..d9ff5c4 100644
--- a/plugins/gtk+/glade-model-data.c
+++ b/plugins/gtk+/glade-model-data.c
@@ -340,16 +340,11 @@ update_and_focus_data_tree_idle (GladeEditorProperty *eprop)
 	eprop_data->want_focus = TRUE;
 	eprop_data->want_next_focus = TRUE;
 	
-	g_value_init (&value, GLADE_TYPE_MODEL_DATA_TREE);
-	g_value_take_boxed (&value, eprop_data->pending_data_tree);
-	glade_editor_property_commit (eprop, &value);
-	g_value_unset (&value);
+	update_data_tree_idle (eprop);
 
 	/* XXX Have to load it regardless if it changed, this is a slow and redundant way... */
 	glade_editor_property_load (eprop, eprop->property);
 
-	eprop_data->pending_data_tree = NULL;
-
 	eprop_data->want_next_focus = FALSE;
 	eprop_data->want_focus = FALSE;
 
@@ -915,7 +910,7 @@ eprop_model_generate_column (GladeEditorProperty *eprop,
 	{
 		/* Spin renderer */
 		renderer = gtk_cell_renderer_spin_new ();
-		adjustment = (GtkAdjustment *)gtk_adjustment_new (0, -G_MAXDOUBLE, G_MAXDOUBLE, 100, 100, 100);
+		adjustment = (GtkAdjustment *)gtk_adjustment_new (0, -G_MAXDOUBLE, G_MAXDOUBLE, 100, 100, 0);
 		g_object_set (G_OBJECT (renderer), 
 			      "editable", TRUE, 
 			      "adjustment", adjustment, 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]