diff options
Diffstat (limited to 'libraries/sexy-python/fix-sexy_tooltip_position_to_rect.patch')
-rw-r--r-- | libraries/sexy-python/fix-sexy_tooltip_position_to_rect.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/libraries/sexy-python/fix-sexy_tooltip_position_to_rect.patch b/libraries/sexy-python/fix-sexy_tooltip_position_to_rect.patch new file mode 100644 index 0000000000..93b45e93d1 --- /dev/null +++ b/libraries/sexy-python/fix-sexy_tooltip_position_to_rect.patch @@ -0,0 +1,50 @@ +diff -Nur sexy-python-0.1.9/sexy/sexy.override sexy-python-0.1.9.new/sexy/sexy.override +--- sexy-python-0.1.9/sexy/sexy.override 2006-03-18 22:48:12.000000000 +0100 ++++ sexy-python-0.1.9.new/sexy/sexy.override 2007-03-08 11:11:46.000000000 +0100 +@@ -163,5 +163,46 @@ + return 0; + } + %% ++override sexy_tooltip_position_to_rect kwargs ++ ++/* Stock pygdk_rectangle_from_pyobject crashes with (at least) PyGTK 2.6.8 */ ++static gboolean ++_gimmie_pygdk_rectangle_from_pyobject(PyObject *object, GdkRectangle *rectangle) ++{ ++ g_return_val_if_fail(rectangle != NULL, FALSE); ++ ++ if (pyg_boxed_check(object, GDK_TYPE_RECTANGLE)) { ++ *rectangle = *pyg_boxed_get(object, GdkRectangle); ++ return TRUE; ++ } ++ if (PyArg_ParseTuple(object, "iiii", &rectangle->x, &rectangle->y, ++ &rectangle->width, &rectangle->height)) { ++ return TRUE; ++ } ++ PyErr_Clear(); ++ PyErr_SetString(PyExc_TypeError, "could not convert to GdkRectangle"); ++ return FALSE; ++} ++ ++static PyObject * ++_wrap_sexy_tooltip_position_to_rect(PyGObject *self, PyObject *args, PyObject *kwargs) ++{ ++ static char *kwlist[] = { "rect", "screen", NULL }; ++ PyObject *py_rect; ++ PyGObject *screen; ++ GdkRectangle rect = { 0, 0, 0, 0 }; ++ ++ if (!PyArg_ParseTupleAndKeywords(args, kwargs, "OO!:SexyTooltip.position_to_rect", kwlist, &py_rect, &PyGdkScreen_Type, &screen)) ++ return NULL; ++ ++ /* FIXME: Force the use of a newer version which does not crash */ ++ if (!_gimmie_pygdk_rectangle_from_pyobject(py_rect, &rect)) ++ return NULL; ++ ++ sexy_tooltip_position_to_rect(SEXY_TOOLTIP(self->obj), &rect, GDK_SCREEN(screen->obj)); ++ Py_INCREF(Py_None); ++ return Py_None; ++} ++%% + init + pyg_set_object_has_new_constructor(SEXY_TYPE_URL_LABEL); |