[glade] * gladeui/glade-widget-adaptor.c: Implemented a generic ->depends() routine to ensure that liststo
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade] * gladeui/glade-widget-adaptor.c: Implemented a generic ->depends() routine to ensure that liststo
- Date: Thu, 6 Oct 2011 20:32:31 +0000 (UTC)
commit 9163f4ef117d9ee3a76c54b73dd9e5e2817f1922
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Thu Oct 6 16:30:55 2011 -0400
* gladeui/glade-widget-adaptor.c: Implemented a generic ->depends() routine
to ensure that liststores are serialized before treemodelfilters which refer to them.
ChangeLog | 7 ++++++-
gladeui/glade-widget-adaptor.c | 28 +++++++++++++++++++++++++++-
2 files changed, 33 insertions(+), 2 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index e5706da..e6bf68b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-10-06 Tristan Van Berkom <tvb gnome org>
+
+ * gladeui/glade-widget-adaptor.c: Implemented a generic ->depends() routine
+ to ensure that liststores are serialized before treemodelfilters which refer to them (bug 657164).
+
2011-10-06 Juan Pablo Ugarte <juanpablougarte gmail com>
* plugins/gtk+/gtk+.xml.in: Make n-row and n-column save false.
@@ -7,7 +12,7 @@
Emit parse-finished signal before setting loading state to false.
* plugins/gtk+/glade-gtk-grid.c: infer n-row and n-column virtual
- properties value from children packing props.
+ properties value from children packing props.
2011-10-05 Tristan Van Berkom <tvb gnome org>
diff --git a/gladeui/glade-widget-adaptor.c b/gladeui/glade-widget-adaptor.c
index f3191f8..87d31ee 100644
--- a/gladeui/glade-widget-adaptor.c
+++ b/gladeui/glade-widget-adaptor.c
@@ -959,7 +959,33 @@ glade_widget_adaptor_object_depends (GladeWidgetAdaptor * adaptor,
GladeWidget * widget,
GladeWidget * another)
{
- return FALSE;
+ GList *prop_refs, *l;
+ gboolean depends = FALSE;
+
+ prop_refs = glade_widget_list_prop_refs (another);
+
+ for (l = prop_refs; !depends && l; l = l->next)
+ {
+ GladeProperty *property = l->data;
+ GladeWidget *prop_widget = glade_property_get_widget (property);
+
+ /* If one of the properties that reference @another is
+ * owned by @widget then @widget depends on @another
+ */
+ if (prop_widget == widget)
+ depends = TRUE;
+
+ /* Or if the widget that owns a property which references
+ * @another is somewhere inside @widget... then @widget
+ * also depends on @another.
+ */
+ else if (glade_widget_is_ancestor (prop_widget, widget))
+ depends = TRUE;
+ }
+
+ g_list_free (prop_refs);
+
+ return depends;
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]