switch ( which )
{
case wxTreeItemIcon_SelectedExpanded:
- image = GetImage(wxTreeItemIcon_Expanded);
+ // We consider that expanded icon is more important than
+ // selected so test for it first.
+ image = m_images[wxTreeItemIcon_Expanded];
+ if ( image == -1 )
+ image = m_images[wxTreeItemIcon_Selected];
if ( image != -1 )
break;
//else: fall through
case wxTreeItemIcon_Selected:
case wxTreeItemIcon_Expanded:
- image = GetImage(wxTreeItemIcon_Normal);
+ image = m_images[wxTreeItemIcon_Normal];
break;
case wxTreeItemIcon_Normal:
wxTreeCtrl::~wxTreeCtrl()
{
+ m_isBeingDeleted = true;
+
// delete any attributes
if ( m_hasAnyAttr )
{
//
// to avoid such surprises, we force the generation of focus events
// now, before we generate the selection change ones
- if ( !m_changingSelection )
+ if ( !m_changingSelection && !m_isBeingDeleted )
SetFocus();
break;
case NM_RCLICK:
{
TV_HITTESTINFO tvhti;
- ::GetCursorPos(&tvhti.pt);
+ wxGetCursorPosMSW(&tvhti.pt);
::ScreenToClient(GetHwnd(), &tvhti.pt);
if ( TreeView_HitTest(GetHwnd(), &tvhti) )
{