Andrew Reid wrote:
  Hi all --

  We're in the process of cleaning up the port of our application
from pygtk-0.6.9 to pygtk-2.6.1. Most things transferred over in a reasonably straightforward way, but there's an issue we put
off, and I'm not sure how to handle it.

  We have some mouse callbacks from a GtkCanvas, which are handled
in C++ code, which then calls out to Python to run a handler. In the pygtk-0.6.9 version, there's an fatal-error check in the C++
handler, like this:  (The example is actually from the config callback,
but the mouse-event ones are similar)

void CanvasObj::configure_event_callback( ... ) {
  PyGILState_STATE state = (PyGILState_STATE) pyg_gil_state_ensure();
  try {
PyObject *args = Py_BuildValue("iiii", (int)(a->x), (int)(a->y), (int)(a->width), (int)(a->height));
    if (args) {
      // Call the Python handler for the configuration event...
      PyObject *result = PyObject_CallObject(config_callback, args);
      if (result==NULL) {
          if (PyGtk_FatalExceptions) {  // <--- ERROR CHECK IS HERE

Just calling if (PyErr_Occurred()) should be fine here.

- A.

_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to