wx 2.9.1.1 segfault in wx.lib.agw.customtreectrl

In doing some testing, I found out that my own app generated a seg fault with the following message, any time that I tried to use the wx.lib.agw.customtreectrl.

(python:29207): GLib-GObject-WARNING **: invalid cast from GtkCheckButton' toGtkTreeView’

Segmentation fault

This can be reproduced by running the wxPython demo (2.9.1.1), and trying to run the demo for “CustomTreeCtrl”. It segfaults for me immediately, just like it does in my app.

This happens specifically on KDE-based SuSe 11.4. I’ve tested on debian-flavors of linux, and there is no problem, and there is also no problem in SuSe 11.0 or 11.1. I’ve not yet had time to put together a SuSe 11.3 box yet.

Stack trace follows. Looks like it’s getting into trouble drawing the checkboxes. I don’t know if it is related, but I also noticed some stay pixels inside the checkboxes when running this same control under OSX.

(gdb) where

#0 0xb5b59434 in gtk_tree_view_get_path_at_pos () from /usr/lib/libgtk-x11-2.0.so.0

_#1 0xb41c4d83 in Oxygen::Gtk::CellInfo::CellInfo(GtkTreeView*, int, int, int, int) () from /usr/lib/gtk-2.0/2.10.0/engines/liboxygen-gtk.so

#2 0xb4225f0e in ?? () from /usr/lib/gtk-2.0/2.10.0/engines/liboxygen-gtk.so

#3 0xb5ad8d51 in gtk_paint_check () from /usr/lib/libgtk-x11-2.0.so.0

#4 0xb6419eda in wxRendererGTK::DrawCheckBox(wxWindow*, wxDC&, wxRect const&, int) () from /usr/local/wx/2.9.1.1/lib/libwx_gtk2u_core-2.9.so.1

#5 0xb4ea8a7b in _wrap_RendererNative_DrawCheckBox (args=0x879483c, kwargs=0x87e2bdc) at src/gtk/_gdi_wrap.cpp:38031

#6 0xb76a9a28 in PyCFunction_Call (func=0xb4f400ec, arg=0x879483c, kw=0x87e2bdc) at Objects/methodobject.c:85

#7 0xb770c9c7 in ext_do_call (f=0x8dcfb04, throwflag=0) at Python/ceval.c:4060

#8 PyEval_EvalFrameEx (f=0x8dcfb04, throwflag=0) at Python/ceval.c:2452

#9 0xb770e947 in PyEval_EvalCodeEx (co=0xb4fa1e30, globals=0xb4f769bc, locals=0x0, args=0x8dcf378, argcount=5, kws=0x8dcf38c, kwcount=0, defs=0x0,

defcount=0, closure=0x0) at Python/ceval.c:3000

#10 0xb770c95b in fast_function (f=0x8dcf214, throwflag=0) at Python/ceval.c:3846

#11 call_function (f=0x8dcf214, throwflag=0) at Python/ceval.c:3771

#12 PyEval_EvalFrameEx (f=0x8dcf214, throwflag=0) at Python/ceval.c:2412

#13 0xb770e947 in PyEval_EvalCodeEx (co=0x877ce30, globals=0x87e0824, locals=0x0, args=0x8dcf1a4, argcount=1, kws=0x8dcf1a8, kwcount=5,

defs=0x8798128, defcount=5, closure=0x0) at Python/ceval.c:3000

#14 0xb770c95b in fast_function (f=0x8dcf04c, throwflag=0) at Python/ceval.c:3846

#15 call_function (f=0x8dcf04c, throwflag=0) at Python/ceval.c:3771

#16 PyEval_EvalFrameEx (f=0x8dcf04c, throwflag=0) at Python/ceval.c:2412

#17 0xb770e947 in PyEval_EvalCodeEx (co=0x87a9c80, globals=0x87e0824, locals=0x0, args=0x89d9ea0, argcount=3, kws=0x89d9eac, kwcount=0,

defs=0x88218d8, defcount=1, closure=0x0) at Python/ceval.c:3000

#18 0xb770c95b in fast_function (f=0x89d9d14, throwflag=0) at Python/ceval.c:3846

#19 call_function (f=0x89d9d14, throwflag=0) at Python/ceval.c:3771

#20 PyEval_EvalFrameEx (f=0x89d9d14, throwflag=0) at Python/ceval.c:2412

#21 0xb770e947 in PyEval_EvalCodeEx (co=0x877cd10, globals=0x87e0824, locals=0x0, args=0x876fa80, argcount=7, kws=0x0, kwcount=0, defs=0x87a33f0,

defcount=7, closure=0x0) at Python/ceval.c:3000

#22 0xb7694db7 in function_call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at Objects/funcobject.c:524

#23 0xb766915c in PyObject_Call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at Objects/abstract.c:2492

#24 0xb767c1a1 in instancemethod_call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at Objects/classobject.c:2579

#25 0xb766915c in PyObject_Call (func=0x878361c, arg=0x876fa74, kw=0x0) at Objects/abstract.c:2492

#26 0xb770bfe5 in do_call (f=0x89d9b1c, throwflag=0) at Python/ceval.c:3968

#27 call_function (f=0x89d9b1c, throwflag=0) at Python/ceval.c:3773

#28 PyEval_EvalFrameEx (f=0x89d9b1c, throwflag=0) at Python/ceval.c:2412

#29 0xb770e947 in PyEval_EvalCodeEx (co=0x87e74a0, globals=0x87c7dfc, locals=0x0, args=0x8d925b0, argcount=3, kws=0x89d8e48, kwcount=3,

defs=0x87982a8, defcount=6, closure=0x0) at Python/ceval.c:3000

#30 0xb7694eaf in function_call (func=0x8823d84, arg=0x8d925a4, kw=0x87e202c) at Objects/funcobject.c:524

#31 0xb766915c in PyObject_Call (func=0x8823d84, arg=0x8d925a4, kw=0x87e202c) at Objects/abstract.c:2492

#32 0xb767c1a1 in instancemethod_call (func=0x8823d84, arg=0x8d925a4, kw=0x87e202c) at Objects/classobject.c:2579

#33 0xb766915c in PyObject_Call (func=0xb5024504, arg=0x881b36c, kw=0x87e202c) at Objects/abstract.c:2492

#34 0xb76c8c81 in slot_tp_init (self=0x878e8cc, args=0x881b36c, kwds=0x87e202c) at Objects/typeobject.c:5632

#35 0xb76c7995 in type_call (type=, args=0x881b36c, kwds=0x87e202c) at Objects/typeobject.c:742

#36 0xb766915c in PyObject_Call (func=0x8b88a4c, arg=0x881b36c, kw=0x87e202c) at Objects/abstract.c:2492

#37 0xb770bfe5 in do_call (f=0x8dc67f4, throwflag=0) at Python/ceval.c:3968

#38 call_function (f=0x8dc67f4, throwflag=0) at Python/ceval.c:3773

#39 PyEval_EvalFrameEx (f=0x8dc67f4, throwflag=0) at Python/ceval.c:2412

#40 0xb770e947 in PyEval_EvalCodeEx (co=0x878aad0, globals=0x87c7dfc, locals=0x0, args=0x8d90588, argcount=3, kws=0x0, kwcount=0, defs=0x0,

defcount=0, closure=0x0) at Python/ceval.c:3000

#41 0xb7694db7 in function_call (func=0x882379c, arg=0x8d9057c, kw=0x0) at Objects/funcobject.c:524

#42 0xb766915c in PyObject_Call (func=0x882379c, arg=0x8d9057c, kw=0x0) at Objects/abstract.c:2492

···


Daniel Hyams
dhyams@gmail.com

I've confirmed that if I remove the call to render.DrawCheckBox() in
wx/lib/agw/customtreectrl.py, line 7492, there is no seg fault. There
are no checkboxes drawn, of course, but I can probably work around the
problem by supplying my own bitmaps for the checkboxes.

Also confirmed that this does *not* happen in SuSe 11.3. Something
changed in 11.4.

···

On Mar 22, 11:50 pm, Daniel Hyams <dhy...@gmail.com> wrote:

In doing some testing, I found out that my own app generated a seg fault
with the following message, any time that I tried to use the
wx.lib.agw.customtreectrl.

(python:29207): GLib-GObject-WARNING **: invalid cast from `GtkCheckButton'
to `GtkTreeView'
Segmentation fault

This can be reproduced by running the wxPython demo (2.9.1.1), and trying to
run the demo for "CustomTreeCtrl". It segfaults for me immediately, just
like it does in my app.

This happens specifically on KDE-based SuSe 11.4. I've tested on
debian-flavors of linux, and there is no problem, and there is also no
problem in SuSe 11.0 or 11.1. I've not yet had time to put together a SuSe
11.3 box yet.

Stack trace follows. Looks like it's getting into trouble drawing the
checkboxes. I don't know if it is related, but I also noticed some stay
pixels inside the checkboxes when running this same control under OSX.

(gdb) where
*#0 0xb5b59434 in gtk_tree_view_get_path_at_pos () from
/usr/lib/libgtk-x11-2.0.so.0*
*#1 0xb41c4d83 in Oxygen::Gtk::CellInfo::CellInfo(_GtkTreeView*, int, int,
int, int) () from /usr/lib/gtk-2.0/2.10.0/engines/liboxygen-gtk.so*
*#2 0xb4225f0e in ?? () from
/usr/lib/gtk-2.0/2.10.0/engines/liboxygen-gtk.so*
*#3 0xb5ad8d51 in gtk_paint_check () from /usr/lib/libgtk-x11-2.0.so.0*
*#4 0xb6419eda in wxRendererGTK::DrawCheckBox(wxWindow*, wxDC&, wxRect
const&, int) () from /usr/local/wx/2.9.1.1/lib/libwx_gtk2u_core-2.9.so.1*
#5 0xb4ea8a7b in _wrap_RendererNative_DrawCheckBox (args=0x879483c,
kwargs=0x87e2bdc) at src/gtk/_gdi_wrap.cpp:38031
#6 0xb76a9a28 in PyCFunction_Call (func=0xb4f400ec, arg=0x879483c,
kw=0x87e2bdc) at Objects/methodobject.c:85
#7 0xb770c9c7 in ext_do_call (f=0x8dcfb04, throwflag=0) at
Python/ceval.c:4060
#8 PyEval_EvalFrameEx (f=0x8dcfb04, throwflag=0) at Python/ceval.c:2452
#9 0xb770e947 in PyEval_EvalCodeEx (co=0xb4fa1e30, globals=0xb4f769bc,
locals=0x0, args=0x8dcf378, argcount=5, kws=0x8dcf38c, kwcount=0, defs=0x0,
defcount=0, closure=0x0) at Python/ceval.c:3000
#10 0xb770c95b in fast_function (f=0x8dcf214, throwflag=0) at
Python/ceval.c:3846
#11 call_function (f=0x8dcf214, throwflag=0) at Python/ceval.c:3771
#12 PyEval_EvalFrameEx (f=0x8dcf214, throwflag=0) at Python/ceval.c:2412
#13 0xb770e947 in PyEval_EvalCodeEx (co=0x877ce30, globals=0x87e0824,
locals=0x0, args=0x8dcf1a4, argcount=1, kws=0x8dcf1a8, kwcount=5,
defs=0x8798128, defcount=5, closure=0x0) at Python/ceval.c:3000
#14 0xb770c95b in fast_function (f=0x8dcf04c, throwflag=0) at
Python/ceval.c:3846
#15 call_function (f=0x8dcf04c, throwflag=0) at Python/ceval.c:3771
#16 PyEval_EvalFrameEx (f=0x8dcf04c, throwflag=0) at Python/ceval.c:2412
#17 0xb770e947 in PyEval_EvalCodeEx (co=0x87a9c80, globals=0x87e0824,
locals=0x0, args=0x89d9ea0, argcount=3, kws=0x89d9eac, kwcount=0,
defs=0x88218d8, defcount=1, closure=0x0) at Python/ceval.c:3000
#18 0xb770c95b in fast_function (f=0x89d9d14, throwflag=0) at
Python/ceval.c:3846
#19 call_function (f=0x89d9d14, throwflag=0) at Python/ceval.c:3771
#20 PyEval_EvalFrameEx (f=0x89d9d14, throwflag=0) at Python/ceval.c:2412
#21 0xb770e947 in PyEval_EvalCodeEx (co=0x877cd10, globals=0x87e0824,
locals=0x0, args=0x876fa80, argcount=7, kws=0x0, kwcount=0, defs=0x87a33f0,
defcount=7, closure=0x0) at Python/ceval.c:3000
#22 0xb7694db7 in function_call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at
Objects/funcobject.c:524
#23 0xb766915c in PyObject_Call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at
Objects/abstract.c:2492
#24 0xb767c1a1 in instancemethod_call (func=0x87a33ac, arg=0x876fa74,
kw=0x0) at Objects/classobject.c:2579
#25 0xb766915c in PyObject_Call (func=0x878361c, arg=0x876fa74, kw=0x0) at
Objects/abstract.c:2492
#26 0xb770bfe5 in do_call (f=0x89d9b1c, throwflag=0) at Python/ceval.c:3968
#27 call_function (f=0x89d9b1c, throwflag=0) at Python/ceval.c:3773
#28 PyEval_EvalFrameEx (f=0x89d9b1c, throwflag=0) at Python/ceval.c:2412
#29 0xb770e947 in PyEval_EvalCodeEx (co=0x87e74a0, globals=0x87c7dfc,
locals=0x0, args=0x8d925b0, argcount=3, kws=0x89d8e48, kwcount=3,
defs=0x87982a8, defcount=6, closure=0x0) at Python/ceval.c:3000
#30 0xb7694eaf in function_call (func=0x8823d84, arg=0x8d925a4,
kw=0x87e202c) at Objects/funcobject.c:524
#31 0xb766915c in PyObject_Call (func=0x8823d84, arg=0x8d925a4,
kw=0x87e202c) at Objects/abstract.c:2492
#32 0xb767c1a1 in instancemethod_call (func=0x8823d84, arg=0x8d925a4,
kw=0x87e202c) at Objects/classobject.c:2579
#33 0xb766915c in PyObject_Call (func=0xb5024504, arg=0x881b36c,
kw=0x87e202c) at Objects/abstract.c:2492
#34 0xb76c8c81 in slot_tp_init (self=0x878e8cc, args=0x881b36c,
kwds=0x87e202c) at Objects/typeobject.c:5632
#35 0xb76c7995 in type_call (type=<value optimized out>, args=0x881b36c,
kwds=0x87e202c) at Objects/typeobject.c:742
#36 0xb766915c in PyObject_Call (func=0x8b88a4c, arg=0x881b36c,
kw=0x87e202c) at Objects/abstract.c:2492
#37 0xb770bfe5 in do_call (f=0x8dc67f4, throwflag=0) at Python/ceval.c:3968
#38 call_function (f=0x8dc67f4, throwflag=0) at Python/ceval.c:3773
#39 PyEval_EvalFrameEx (f=0x8dc67f4, throwflag=0) at Python/ceval.c:2412
#40 0xb770e947 in PyEval_EvalCodeEx (co=0x878aad0, globals=0x87c7dfc,
locals=0x0, args=0x8d90588, argcount=3, kws=0x0, kwcount=0, defs=0x0,
defcount=0, closure=0x0) at Python/ceval.c:3000
#41 0xb7694db7 in function_call (func=0x882379c, arg=0x8d9057c, kw=0x0) at
Objects/funcobject.c:524
#42 0xb766915c in PyObject_Call (func=0x882379c, arg=0x8d9057c, kw=0x0) at
Objects/abstract.c:2492

--
Daniel Hyams
dhy...@gmail.com

Further information on this: the segfault does not occur when using
the GNOME desktop on SuSe 11.4 either. I think it's the oxygen theme
with KDE that is causing the problems, but I'm not quite sure yet. I
don't understand how the call to the renderer could care what widget
it is drawing for (see stack trace above); I've even passed "None"
instead of "self" in the render call that draws the checkboxes, but it
still segfaults in the same way on Suse 11.4, KDE desktop.

···

On Mar 23, 8:43 am, dhyams <dhy...@gmail.com> wrote:

I've confirmed that if I remove the call to render.DrawCheckBox() in
wx/lib/agw/customtreectrl.py, line 7492, there is no seg fault. There
are no checkboxes drawn, of course, but I can probably work around the
problem by supplying my own bitmaps for the checkboxes.

Also confirmed that this does *not* happen in SuSe 11.3. Something
changed in 11.4.

On Mar 22, 11:50 pm, Daniel Hyams <dhy...@gmail.com> wrote:

> In doing some testing, I found out that my own app generated a seg fault
> with the following message, any time that I tried to use the
> wx.lib.agw.customtreectrl.

> (python:29207): GLib-GObject-WARNING **: invalid cast from `GtkCheckButton'
> to `GtkTreeView'
> Segmentation fault

> This can be reproduced by running the wxPython demo (2.9.1.1), and trying to
> run the demo for "CustomTreeCtrl". It segfaults for me immediately, just
> like it does in my app.

> This happens specifically on KDE-based SuSe 11.4. I've tested on
> debian-flavors of linux, and there is no problem, and there is also no
> problem in SuSe 11.0 or 11.1. I've not yet had time to put together a SuSe
> 11.3 box yet.

> Stack trace follows. Looks like it's getting into trouble drawing the
> checkboxes. I don't know if it is related, but I also noticed some stay
> pixels inside the checkboxes when running this same control under OSX.

> (gdb) where
> *#0 0xb5b59434 in gtk_tree_view_get_path_at_pos () from
> /usr/lib/libgtk-x11-2.0.so.0*
> *#1 0xb41c4d83 in Oxygen::Gtk::CellInfo::CellInfo(_GtkTreeView*, int, int,
> int, int) () from /usr/lib/gtk-2.0/2.10.0/engines/liboxygen-gtk.so*
> *#2 0xb4225f0e in ?? () from
> /usr/lib/gtk-2.0/2.10.0/engines/liboxygen-gtk.so*
> *#3 0xb5ad8d51 in gtk_paint_check () from /usr/lib/libgtk-x11-2.0.so.0*
> *#4 0xb6419eda in wxRendererGTK::DrawCheckBox(wxWindow*, wxDC&, wxRect
> const&, int) () from /usr/local/wx/2.9.1.1/lib/libwx_gtk2u_core-2.9.so.1*
> #5 0xb4ea8a7b in _wrap_RendererNative_DrawCheckBox (args=0x879483c,
> kwargs=0x87e2bdc) at src/gtk/_gdi_wrap.cpp:38031
> #6 0xb76a9a28 in PyCFunction_Call (func=0xb4f400ec, arg=0x879483c,
> kw=0x87e2bdc) at Objects/methodobject.c:85
> #7 0xb770c9c7 in ext_do_call (f=0x8dcfb04, throwflag=0) at
> Python/ceval.c:4060
> #8 PyEval_EvalFrameEx (f=0x8dcfb04, throwflag=0) at Python/ceval.c:2452
> #9 0xb770e947 in PyEval_EvalCodeEx (co=0xb4fa1e30, globals=0xb4f769bc,
> locals=0x0, args=0x8dcf378, argcount=5, kws=0x8dcf38c, kwcount=0, defs=0x0,
> defcount=0, closure=0x0) at Python/ceval.c:3000
> #10 0xb770c95b in fast_function (f=0x8dcf214, throwflag=0) at
> Python/ceval.c:3846
> #11 call_function (f=0x8dcf214, throwflag=0) at Python/ceval.c:3771
> #12 PyEval_EvalFrameEx (f=0x8dcf214, throwflag=0) at Python/ceval.c:2412
> #13 0xb770e947 in PyEval_EvalCodeEx (co=0x877ce30, globals=0x87e0824,
> locals=0x0, args=0x8dcf1a4, argcount=1, kws=0x8dcf1a8, kwcount=5,
> defs=0x8798128, defcount=5, closure=0x0) at Python/ceval.c:3000
> #14 0xb770c95b in fast_function (f=0x8dcf04c, throwflag=0) at
> Python/ceval.c:3846
> #15 call_function (f=0x8dcf04c, throwflag=0) at Python/ceval.c:3771
> #16 PyEval_EvalFrameEx (f=0x8dcf04c, throwflag=0) at Python/ceval.c:2412
> #17 0xb770e947 in PyEval_EvalCodeEx (co=0x87a9c80, globals=0x87e0824,
> locals=0x0, args=0x89d9ea0, argcount=3, kws=0x89d9eac, kwcount=0,
> defs=0x88218d8, defcount=1, closure=0x0) at Python/ceval.c:3000
> #18 0xb770c95b in fast_function (f=0x89d9d14, throwflag=0) at
> Python/ceval.c:3846
> #19 call_function (f=0x89d9d14, throwflag=0) at Python/ceval.c:3771
> #20 PyEval_EvalFrameEx (f=0x89d9d14, throwflag=0) at Python/ceval.c:2412
> #21 0xb770e947 in PyEval_EvalCodeEx (co=0x877cd10, globals=0x87e0824,
> locals=0x0, args=0x876fa80, argcount=7, kws=0x0, kwcount=0, defs=0x87a33f0,
> defcount=7, closure=0x0) at Python/ceval.c:3000
> #22 0xb7694db7 in function_call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at
> Objects/funcobject.c:524
> #23 0xb766915c in PyObject_Call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at
> Objects/abstract.c:2492
> #24 0xb767c1a1 in instancemethod_call (func=0x87a33ac, arg=0x876fa74,
> kw=0x0) at Objects/classobject.c:2579
> #25 0xb766915c in PyObject_Call (func=0x878361c, arg=0x876fa74, kw=0x0) at
> Objects/abstract.c:2492
> #26 0xb770bfe5 in do_call (f=0x89d9b1c, throwflag=0) at Python/ceval.c:3968
> #27 call_function (f=0x89d9b1c, throwflag=0) at Python/ceval.c:3773
> #28 PyEval_EvalFrameEx (f=0x89d9b1c, throwflag=0) at Python/ceval.c:2412
> #29 0xb770e947 in PyEval_EvalCodeEx (co=0x87e74a0, globals=0x87c7dfc,
> locals=0x0, args=0x8d925b0, argcount=3, kws=0x89d8e48, kwcount=3,
> defs=0x87982a8, defcount=6, closure=0x0) at Python/ceval.c:3000
> #30 0xb7694eaf in function_call (func=0x8823d84, arg=0x8d925a4,
> kw=0x87e202c) at Objects/funcobject.c:524
> #31 0xb766915c in PyObject_Call (func=0x8823d84, arg=0x8d925a4,
> kw=0x87e202c) at Objects/abstract.c:2492
> #32 0xb767c1a1 in instancemethod_call (func=0x8823d84, arg=0x8d925a4,
> kw=0x87e202c) at Objects/classobject.c:2579
> #33 0xb766915c in PyObject_Call (func=0xb5024504, arg=0x881b36c,
> kw=0x87e202c) at Objects/abstract.c:2492
> #34 0xb76c8c81 in slot_tp_init (self=0x878e8cc, args=0x881b36c,
> kwds=0x87e202c) at Objects/typeobject.c:5632
> #35 0xb76c7995 in type_call (type=<value optimized out>, args=0x881b36c,
> kwds=0x87e202c) at Objects/typeobject.c:742
> #36 0xb766915c in PyObject_Call (func=0x8b88a4c, arg=0x881b36c,
> kw=0x87e202c) at Objects/abstract.c:2492
> #37 0xb770bfe5 in do_call (f=0x8dc67f4, throwflag=0) at Python/ceval.c:3968
> #38 call_function (f=0x8dc67f4, throwflag=0) at Python/ceval.c:3773
> #39 PyEval_EvalFrameEx (f=0x8dc67f4, throwflag=0) at Python/ceval.c:2412
> #40 0xb770e947 in PyEval_EvalCodeEx (co=0x878aad0, globals=0x87c7dfc,
> locals=0x0, args=0x8d90588, argcount=3, kws=0x0, kwcount=0, defs=0x0,
> defcount=0, closure=0x0) at Python/ceval.c:3000
> #41 0xb7694db7 in function_call (func=0x882379c, arg=0x8d9057c, kw=0x0) at
> Objects/funcobject.c:524
> #42 0xb766915c in PyObject_Call (func=0x882379c, arg=0x8d9057c, kw=0x0) at
> Objects/abstract.c:2492

> --
> Daniel Hyams
> dhy...@gmail.com

Further information on this: the segfault does not occur when using
the GNOME desktop on SuSe 11.4 either. I think it's the oxygen theme
with KDE that is causing the problems, but I'm not quite sure yet.

Yes, that is what I read from the stack trace as well. Have you tried switching to another theme for GTK apps in the environment?

I
don't understand how the call to the renderer could care what widget
it is drawing for (see stack trace above); I've even passed "None"
instead of "self" in the render call that draws the checkboxes, but it
still segfaults in the same way on Suse 11.4, KDE desktop.

My guess is that the theme may be doing something like checking where the checkbox is being drawn in order to draw it differently based on context. If the theme's developer never anticipated that any non-gtk widget would ever have to render a checkbox then they may have made some bad assumptions for cases like wx generic widgets.

···

On 3/23/11 7:39 AM, dhyams wrote:

--
Robin Dunn
Software Craftsman