X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/96aaaff8654713ad989bd833476856e9df06f8a8..d94de683a60b20153591cc3f8f52a97cf9ce9453:/src/generic/treectlg.cpp diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp index cd500b62a3..800e58ad60 100644 --- a/src/generic/treectlg.cpp +++ b/src/generic/treectlg.cpp @@ -49,7 +49,7 @@ // array types // ----------------------------------------------------------------------------- -class WXDLLEXPORT wxGenericTreeItem; +class WXDLLIMPEXP_FWD_CORE wxGenericTreeItem; WX_DEFINE_EXPORTED_ARRAY_PTR(wxGenericTreeItem *, wxArrayGenericTreeItems); @@ -2148,7 +2148,7 @@ void wxGenericTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc) else if (item->IsBold()) dc.SetFont(m_boldFont); - long text_w = 0, text_h = 0; + wxCoord text_w = 0, text_h = 0; dc.GetTextExtent( item->GetText(), &text_w, &text_h ); int image_h = 0, image_w = 0; @@ -2766,7 +2766,11 @@ void wxGenericTreeCtrl::OnChar( wxKeyEvent &event ) case WXK_RIGHT: // this works the same as the down arrow except that we // also expand the item if it wasn't expanded yet - Expand(m_current); + if (m_current != GetRootItem().m_pItem || !HasFlag(wxTR_HIDE_ROOT)) + Expand(m_current); + //else: don't try to expand hidden root item (which can be the + // current one when the tree is empty) + // fall through case WXK_DOWN: @@ -2775,6 +2779,9 @@ void wxGenericTreeCtrl::OnChar( wxKeyEvent &event ) { wxTreeItemIdValue cookie; wxTreeItemId child = GetFirstChild( m_key_current, cookie ); + if ( !child ) + break; + DoSelectItem( child, unselect_others, extended_select ); m_key_current=(wxGenericTreeItem*) child.m_pItem; }