+ // Check if we need to select the root item
+ // because nothing else has been selected.
+ // Delaying it means that we can invoke event handlers
+ // as required, when a first item is selected.
+ if (!m_owner->HasFlag(wxTR_MULTIPLE) && !m_owner->GetSelection().IsOk())
+ {
+ if (m_select_me)
+ m_owner->SelectItem(m_select_me);
+ else if (m_owner->GetRootItem().IsOk())
+ m_owner->SelectItem(m_owner->GetRootItem());
+ m_select_me = NULL;
+ m_curItem = (wxTreeListItem*)m_owner->GetSelection().m_pItem;
+
+ }
+