diff options
author | James Henstridge <james@daa.com.au> | 2001-06-21 10:07:50 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2001-06-21 10:07:50 +0000 |
commit | 4518d3615b7e13ec4790b383ee8ce725adf327dd (patch) | |
tree | 0fa461194d5f0dcbc72d474cec5fabfe2693f0bb | |
parent | 582cf030843bb70bada2ef2493b0b296150be03e (diff) | |
download | pygobject-4518d3615b7e13ec4790b383ee8ce725adf327dd.tar.gz |
comment out, as container args have been switched to properties now.
2001-06-21 James Henstridge <james@daa.com.au>
* gtk/gtkobject-support.c (pygtk_dict_as_container_args): comment
out, as container args have been switched to properties now.
2001-06-19 James Henstridge <james@daa.com.au>
* gobjectmodule.c (pyg_value_from_pyobject): handle PyGBoxed
types.
(pyg_value_as_pyobject): pass out PyGBoxed types if no custom
handler is found, rather than straight CObjects. Will need to do
something about cases where we want mutable values (ie. don't copy
the boxed type).
* configure.in: require glib/gtk+ 1.3.6
-rw-r--r-- | gobject/gobjectmodule.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 05565e99..861a03ca 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -642,13 +642,16 @@ pyg_value_from_pyobject(GValue *value, PyObject *obj) return -1; g_value_set_flags(value, val); } else if (G_VALUE_HOLDS_BOXED(value)) { - PyGBoxedMarshal *bm = pyg_boxed_lookup(G_VALUE_TYPE(value)); + PyGBoxedMarshal *bm; - if (bm) + if (pyg_boxed_check(obj, &PyGBoxed_Type) && + G_VALUE_HOLDS(value, ((PyGBoxed *)obj)->gtype)) { + g_value_set_boxed(value, pyg_boxed_get(obj, gpointer)); + } else if ((bm = pyg_boxed_lookup(G_VALUE_TYPE(value))) != NULL) { return bm->tovalue(value, obj); - if (PyCObject_Check(obj)) + } else if (PyCObject_Check(obj)) { g_value_set_boxed(value, PyCObject_AsVoidPtr(obj)); - else + } else return -1; } else if (G_VALUE_HOLDS_POINTER(value)) { if (PyCObject_Check(obj)) @@ -696,7 +699,8 @@ pyg_value_as_pyobject(const GValue *value) if (bm) return bm->fromvalue(value); else - return PyCObject_FromVoidPtr(g_value_get_boxed(value), NULL); + return pyg_boxed_new(G_VALUE_TYPE(value), g_value_get_boxed(value), + TRUE, TRUE); } else if (G_VALUE_HOLDS_POINTER(value)) { return PyCObject_FromVoidPtr(g_value_get_pointer(value), NULL); } |