Robin, thanks for checking. You should just need to drag and drop a tree item from the bottom left tree (DVC Tree) to the main text pane. It will either crash upon dropping or if you exit the application immediately following the drop. I just tested on a different Linux box (Mageia 2 x64), which has a bit newer GTK than my work machine (RHEL6). Are you testing in Linux or OS X? It may be a GTK only problem or perhaps is masked in other platforms.
The code in question is here:
> def _onDragDvText(self, event):
> print "Starting to drag dataview text"
>
> dataObject = wx.PyTextDataObject("Hi Mom")
>
> #AttributeError: 'DataViewEvent' object has no attribute 'SetDragFlags'
> #event.SetDragFlags(wx.Drag_DefaultMove)
>
> event.SetDataObject(dataObject)
The variable dataObject gets deleted twice. I tried to create a new class derived from PyTextDataObject and RefCounter, and incremented the ref count prior to assigning the data object to the event, but that had no effect.
Crash and stacktrace from Mageia below:
[josh@magic] ~/Downloads > python
tree.2.py Starting to drag dataview text
*** glibc detected *** python: double free or corruption (fasttop): 0x000000000122b310 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x73476)[0x7f2e08a88476]
/usr/lib64/python2.7/site-packages/wx-2.9.4-gtk2/wx/_misc_.so(_ZN8wxStringD2Ev+0x47)[0x7f2dfc51f497]
/usr/lib64/python2.7/site-packages/wx-2.9.4-gtk2/wx/_misc_.so(_ZN18wxPyTextDataObjectD0Ev+0x3c)[0x7f2dfc521f4c]
/usr/local/lib/libwx_gtk2u_adv-2.9.so.4(+0x1731b0)[0x7f2e078561b0]
/usr/local/lib/libwx_gtk2u_adv-2.9.so.4(_ZN14wxDataViewCtrlD1Ev+0x8d)[0x7f2e0785632d]
/usr/local/lib/libwx_gtk2u_adv-2.9.so.4(_ZN18wxDataViewTreeCtrlD0Ev+0x5d)[0x7f2e077c5cdd]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN12wxWindowBase7DestroyEv+0x23)[0x7f2e07307553]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN12wxWindowBase15DestroyChildrenEv+0x25)[0x7f2e07307585]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN8wxWindowD1Ev+0x76)[0x7f2e07187e46]
/usr/local/lib/libwx_gtk2u_adv-2.9.so.4(_ZN7wxPanelD0Ev+0x25)[0x7f2e0783a595]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN12wxWindowBase7DestroyEv+0x23)[0x7f2e07307553]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN12wxWindowBase15DestroyChildrenEv+0x25)[0x7f2e07307585]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN8wxWindowD1Ev+0x76)[0x7f2e07187e46]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN19wxTopLevelWindowGTKD2Ev+0xde)[0x7f2e0717be9e]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN11wxFrameBaseD1Ev+0x6c)[0x7f2e0726f55c]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN7wxFrameD0Ev+0x9)[0x7f2e071d9b59]
/usr/local/lib/libwx_baseu-2.9.so.4(_ZN16wxAppConsoleBase20DeletePendingObjectsEv+0x42)[0x7f2e0688d6d2]
/usr/local/lib/libwx_baseu-2.9.so.4(_ZN16wxAppConsoleBase11ProcessIdleEv+0x4d)[0x7f2e0688d73d]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN9wxAppBase11ProcessIdleEv+0x13)[0x7f2e072142f3]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN5wxApp6DoIdleEv+0x75)[0x7f2e071553d5]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(+0x25f4f3)[0x7f2e071554f3]
/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x133)[0x7f2e0399abc3]
/lib64/libglib-2.0.so.0(+0x47f10)[0x7f2e0399af10]
/lib64/libglib-2.0.so.0(g_main_loop_run+0x6a)[0x7f2e0399b30a]
/usr/lib64/libgtk-x11-2.0.so.0(gtk_main+0xa7)[0x7f2e05e0ad57]
/usr/local/lib/libwx_gtk2u_core-2.9.so.4(_ZN14wxGUIEventLoop3RunEv+0x2a)[0x7f2e0716c26a]
/usr/local/lib/libwx_baseu-2.9.so.4(_ZN16wxAppConsoleBase8MainLoopEv+0x31)[0x7f2e068912e1]
/usr/lib64/python2.7/site-packages/wx-2.9.4-gtk2/wx/_core_.so(_ZN7wxPyApp8MainLoopEv+0x37)[0x7f2e07b19c37]
/usr/lib64/python2.7/site-packages/wx-2.9.4-gtk2/wx/_core_.so(+0xdb52f)[0x7f2e07ba952f]
/usr/lib64/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x52e6)[0x7f2e0909dc06]
/usr/lib64/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x88f)[0x7f2e0909f40f]
/usr/lib64/libpython2.7.so.1.0(+0x6ea4c)[0x7f2e0902ba4c]
/usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x53)[0x7f2e09006de3]
/usr/lib64/libpython2.7.so.1.0(+0x58a5f)[0x7f2e09015a5f]
/usr/lib64/libpython2.7.so.1.0(PyObject_Call+0x53)[0x7f2e09006de3]
/usr/lib64/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x3e42)[0x7f2e0909c762]
/usr/lib64/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x5a63)[0x7f2e0909e383]
/usr/lib64/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x88f)[0x7f2e0909f40f]
/usr/lib64/libpython2.7.so.1.0(PyEval_EvalCode+0x32)[0x7f2e0909f542]
/usr/lib64/libpython2.7.so.1.0(+0xfc88c)[0x7f2e090b988c]
/usr/lib64/libpython2.7.so.1.0(PyRun_FileExFlags+0x90)[0x7f2e090ba690]
/usr/lib64/libpython2.7.so.1.0(PyRun_SimpleFileExFlags+0xdf)[0x7f2e090bb10f]
/usr/lib64/libpython2.7.so.1.0(Py_Main+0xbe5)[0x7f2e090ccd35]
/lib64/libc.so.6(__libc_start_main+0xed)[0x7f2e08a3632d]
python[0x4006a1]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:01 7783 /usr/bin/python2.7
00600000-00601000 r--p 00000000 08:01 7783 /usr/bin/python2.7
00601000-00602000 rw-p 00001000 08:01 7783 /usr/bin/python2.7
006e0000-01448000 rw-p 00000000 00:00 0 [heap]
7f2df7e72000-7f2df7e74000 r-xp 00000000 08:01 6884 /usr/lib64/pango/1.6.0/modules/pango-basic-fc.so
7f2df7e74000-7f2df8073000 ---p 00002000 08:01 6884 /usr/lib64/pango/1.6.0/modules/pango-basic-fc.so
7f2df8073000-7f2df8074000 r--p 00001000 08:01 6884 /usr/lib64/pango/1.6.0/modules/pango-basic-fc.so
7f2df8074000-7f2df8075000 rw-p 00002000 08:01 6884 /usr/lib64/pango/1.6.0/modules/pango-basic-fc.so
7f2df8075000-7f2df8125000 r--p 00000000 08:01 22906 /usr/share/fonts/TTF/dejavu/DejaVuSans.ttf
7f2df8125000-7f2df8185000 rw-s 00000000 00:04 3375147 /SYSV00000000 (deleted)
7f2df8185000-7f2df81ab000 r-xp 00000000 08:01 42572 /usr/lib64/libbluray.so.1.0.0
7f2df81ab000-7f2df83ab000 ---p 00026000 08:01 42572 /usr/lib64/libbluray.so.1.0.0
7f2df83ab000-7f2df83ac000 r--p 00026000 08:01 42572 /usr/lib64/libbluray.so.1.0.0
7f2df83ac000-7f2df83ad000 rw-p 00027000 08:01 42572 /usr/lib64/libbluray.so.1.0.0
7f2df83ad000-7f2df83bc000 r-xp 00000000 08:01 131352 /lib64/libudev.so.0.13.1
7f2df83bc000-7f2df85bb000 ---p 0000f000 08:01 131352 /lib64/libudev.so.0.13.1
7f2df85bb000-7f2df85bc000 r--p 0000e000 08:01 131352 /lib64/libudev.so.0.13.1
7f2df85bc000-7f2df85bd000 rw-p 0000f000 08:01 131352 /lib64/libudev.so.0.13.1
7f2df85bd000-7f2df8600000 r-xp 00000000 08:01 131497 /lib64/libdbus-1.so.3.5.8
7f2df8600000-7f2df8800000 ---p 00043000 08:01 131497 /lib64/libdbus-1.so.3.5.8
7f2df8800000-7f2df8801000 r--p 00043000 08:01 131497 /lib64/libdbus-1.so.3.5.8
7f2df8801000-7f2df8802000 rw-p 00044000 08:01 131497 /lib64/libdbus-1.so.3.5.8
7f2df8802000-7f2df8819000 r-xp 00000000 08:01 42610 /usr/lib64/libgvfscommon.so.0.0.0
7f2df8819000-7f2df8a18000 ---p 00017000 08:01 42610 /usr/lib64/libgvfscommon.so.0.0.0
7f2df8a18000-7f2df8a19000 r--p 00016000 08:01 42610 /usr/lib64/libgvfscommon.so.0.0.0
7f2df8a19000-7f2df8a1a000 rw-p 00017000 08:01 42610 /usr/lib64/libgvfscommon.so.0.0.0
7f2df8a1a000-7f2df8a42000 r-xp 00000000 08:01 42590 /usr/lib64/gio/modules/libgvfsdbus.so
7f2df8a42000-7f2df8c41000 ---p 00028000 08:01 42590 /usr/lib64/gio/modules/libgvfsdbus.so
7f2df8c41000-7f2df8c42000 r--p 00027000 08:01 42590 /usr/lib64/gio/modules/libgvfsdbus.so
7f2df8c42000-7f2df8c43000 rw-p 00028000 08:01 42590 /usr/lib64/gio/modules/libgvfsdbus.so
7f2df8c43000-7f2df8d90000 r-xp 00000000 08:01 58069 /usr/lib64/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
7f2df8d90000-7f2df8f90000 ---p 0014d000 08:01 58069 /usr/lib64/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
7f2df8f90000-7f2df8f96000 r--p 0014d000 08:01 58069 /usr/lib64/gtk-2.0/2.10.0/engines/liboxygen-gtk.soAborted (core dumped)
Program terminated with signal 6, Aborted.
#0 0x00007f2e08a49245 in raise () from /lib64/libc.so.6
t(gdb) bt
#0 0x00007f2e08a49245 in raise () from /lib64/libc.so.6
#1 0x00007f2e08a4a7cb in abort () from /lib64/libc.so.6
#2 0x00007f2e08a825be in __libc_message () from /lib64/libc.so.6
#3 0x00007f2e08a88476 in malloc_printerr () from /lib64/libc.so.6
#4 0x00007f2dfc51f497 in _M_dispose (__a=..., this=<optimized out>)
at /usr/lib/gcc/x86_64-mageia-linux-gnu/4.6.3/../../../../include/c++/4.6.3/bits/basic_string.h:244
#5 ~basic_string (this=0x140bba8, __in_chrg=<optimized out>)
at /usr/lib/gcc/x86_64-mageia-linux-gnu/4.6.3/../../../../include/c++/4.6.3/bits/basic_string.h:534
#6 wxString::~wxString (this=0x140bba8, __in_chrg=<optimized out>) at /usr/local/include/wx-2.9/wx/string.h:441
#7 0x00007f2dfc521f4c in ~wxTextDataObject (this=0x140bb90, __in_chrg=<optimized out>) at /usr/local/include/wx-2.9/wx/dataobj.h:376
#8 ~wxPyTextDataObject (this=0x140bb90, __in_chrg=<optimized out>) at src/gtk/_misc_wrap.cpp:4069
#9 wxPyTextDataObject::~wxPyTextDataObject (this=0x140bb90, __in_chrg=<optimized out>) at src/gtk/_misc_wrap.cpp:4069
#10 0x00007f2e078561b0 in wxDataViewCtrlInternal::~wxDataViewCtrlInternal() () from /usr/local/lib/libwx_gtk2u_adv-2.9.so.4
#11 0x00007f2e0785632d in wxDataViewCtrl::~wxDataViewCtrl() () from /usr/local/lib/libwx_gtk2u_adv-2.9.so.4
#12 0x00007f2e077c5cdd in wxDataViewTreeCtrl::~wxDataViewTreeCtrl() () from /usr/local/lib/libwx_gtk2u_adv-2.9.so.4
#13 0x00007f2e07307553 in wxWindowBase::Destroy() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#14 0x00007f2e07307585 in wxWindowBase::DestroyChildren() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#15 0x00007f2e07187e46 in wxWindow::~wxWindow() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#16 0x00007f2e0783a595 in wxPanel::~wxPanel() () from /usr/local/lib/libwx_gtk2u_adv-2.9.so.4
#17 0x00007f2e07307553 in wxWindowBase::Destroy() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#18 0x00007f2e07307585 in wxWindowBase::DestroyChildren() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#19 0x00007f2e07187e46 in wxWindow::~wxWindow() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#20 0x00007f2e0717be9e in wxTopLevelWindowGTK::~wxTopLevelWindowGTK() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#21 0x00007f2e0726f55c in wxFrameBase::~wxFrameBase() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#22 0x00007f2e071d9b59 in wxFrame::~wxFrame() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#23 0x00007f2e0688d6d2 in wxAppConsoleBase::DeletePendingObjects() () from /usr/local/lib/libwx_baseu-2.9.so.4
#24 0x00007f2e0688d73d in wxAppConsoleBase::ProcessIdle() () from /usr/local/lib/libwx_baseu-2.9.so.4
#25 0x00007f2e072142f3 in wxAppBase::ProcessIdle() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#26 0x00007f2e071553d5 in wxApp::DoIdle() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#27 0x00007f2e071554f3 in wxapp_idle_callback () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#28 0x00007f2e0399abc3 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#29 0x00007f2e0399af10 in ?? () from /lib64/libglib-2.0.so.0
#30 0x00007f2e0399b30a in g_main_loop_run () from /lib64/libglib-2.0.so.0
#31 0x00007f2e05e0ad57 in gtk_main () from /usr/lib64/libgtk-x11-2.0.so.0
#32 0x00007f2e0716c26a in wxGUIEventLoop::Run() () from /usr/local/lib/libwx_gtk2u_core-2.9.so.4
#33 0x00007f2e068912e1 in wxAppConsoleBase::MainLoop() () from /usr/local/lib/libwx_baseu-2.9.so.4
#34 0x00007f2e07b19c37 in MainLoop (this=0xee8020) at src/helpers.cpp:215
#35 wxPyApp::MainLoop (this=0xee8020) at src/helpers.cpp:200
#36 0x00007f2e07ba952f in _wrap_PyApp_MainLoop (args=<optimized out>) at src/gtk/_core_wrap.cpp:34291
#37 0x00007f2e0909dc06 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0
#38 0x00007f2e0909f40f in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0
#39 0x00007f2e0902ba4c in ?? () from /usr/lib64/libpython2.7.so.1.0
#40 0x00007f2e09006de3 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0
#41 0x00007f2e09015a5f in ?? () from /usr/lib64/libpython2.7.so.1.0
#42 0x00007f2e09006de3 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0
#43 0x00007f2e0909c762 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0
#44 0x00007f2e0909e383 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0
#45 0x00007f2e0909f40f in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0
#46 0x00007f2e0909f542 in PyEval_EvalCode () from /usr/lib64/libpython2.7.so.1.0
#47 0x00007f2e090b988c in ?? () from /usr/lib64/libpython2.7.so.1.0
#48 0x00007f2e090ba690 in PyRun_FileExFlags () from /usr/lib64/libpython2.7.so.1.0
#49 0x00007f2e090bb10f in PyRun_SimpleFileExFlags () from /usr/lib64/libpython2.7.so.1.0
#50 0x00007f2e090ccd35 in Py_Main () from /usr/lib64/libpython2.7.so.1.0
#51 0x00007f2e08a3632d in __libc_start_main () from /lib64/libc.so.6
#52 0x00000000004006a1 in _start ()