--- medit-1.0.0.orig/moo/moopython/moopython-pygtkmod.h 2010-12-22 05:11:46.000000000 +0100 +++ medit-1.0.0/moo/moopython/moopython-pygtkmod.h 2011-02-08 16:14:10.000000000 +0100 @@ -20,7 +20,7 @@ G_GNUC_UNUSED static void init_pygtk_mod (void) { - PyObject *gobject, *pygtk; + PyObject *gobject; PyObject *mdict; PyObject *cobject; @@ -29,7 +29,7 @@ mdict = PyModule_GetDict (gobject); cobject = PyDict_GetItemString (mdict, "_PyGObject_API"); - + if (!cobject || !PyCObject_Check (cobject)) { PyErr_SetString (PyExc_RuntimeError, @@ -38,21 +38,13 @@ } _PyGObject_API = (struct _PyGObject_Functions *) PyCObject_AsVoidPtr (cobject); - - if (!(pygtk = PyImport_ImportModule("gtk._gtk"))) - return; - - mdict = PyModule_GetDict (pygtk); - cobject = PyDict_GetItemString (mdict, "_PyGtk_API"); - - if (!cobject || !PyCObject_Check (cobject)) - { - PyErr_SetString (PyExc_RuntimeError, - "could not find _PyGtk_API object"); + + void *capsule = PyCapsule_Import("gtk._gtk._PyGtk_API", 0); + if (!capsule) { return; } - - _PyGtk_API = (struct _PyGtk_FunctionStruct*) PyCObject_AsVoidPtr (cobject); + + _PyGtk_API = (struct _PyGtk_FunctionStruct*) capsule; }