Hallelujah!  After days of agony and frustration I finally figured this out.

I'm using the pygobject h2def.py script to generate my .defs file from the
thunarx header files, and for all my object definitions (i.e.
ThunarxMenuProvider, etc), it was using the define-object call.  But
apparently, it needs to use the define-interface call, because once I
changed it to define-interface, everything worked perfectly.  I only noticed
this after looking at the nautilus-python's generated nautilus.c file, which
was calling pyg_register_interface() rather than the
pygobject_register_class() function all my objects were using.  I then
looked at the nautilus defs file and it was using the define-interface call
rather than the define-object call.  Changing "object" to "interface" fixed
it for me.

Is this a bug in h2def.py?  Can someone explain it to me?

Adam

On Fri, Dec 11, 2009 at 10:57 AM, Adam Plumb <[email protected]> wrote:

> I'm working on writing python bindings for the Thunar extension framework
> (the code is based on the nautilus python bindings) and I'm pretty close,
> but I can't figure out how to get past this error that happens when I try to
> convert a GObject variable to a PyObject variable.
>
> The call that is causing the trouble is pygobject_new() and I get the
> following error:
>
> TypeError: multiple bases have instance lay-out conflict
> **
> ERROR:/build/buildd/pygobject-2.18.0/gobject/pygobject.c:924:pygobject_new_full:
> assertion failed: (tp != NULL)
> Aborted
>
> The code in question is here:
> http://github.com/adamplumb/thunarx-python/blob/master/src/thunarx-python-object.cline
>  147.
>
> My project is up at http://github.com/adamplumb/thunarx-python and it
> compiles and installs, it just needs thunar master from
> http://git.xfce.org/xfce/thunar/ to run.  To reproduce the issue, load up
> thunar with the bindings loaded and a python extension (available in the
> examples folder) loaded and right click on a folder or file.
>
> I feel like there is a tiny thing I'm doing wrong here and would appreciate
> it if some folks could look over my code and see if they can see any glaring
> causes for this.
>
> Thanks,
> Adam
>
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/

Reply via email to