X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/97e5b0645e941358e5892d49fb3f04bdc73e4219..681be2ef80274e6c39b243922a594c59e4983dab:/src/generic/datavgen.cpp diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index 63a7ed68cf..6df48842d2 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -3442,6 +3442,10 @@ void wxDataViewMainWindow::OnMouse( wxMouseEvent &event ) return; } + // set the focus to ourself if any of the mouse buttons are pressed + if(event.ButtonDown() && !HasFocus()) + SetFocus(); + int x = event.GetX(); int y = event.GetY(); m_owner->CalcUnscrolledPosition( x, y, &x, &y ); @@ -3711,8 +3715,6 @@ void wxDataViewMainWindow::OnMouse( wxMouseEvent &event ) } else if ((event.LeftDown() || simulateClick) && !hoverOverExpander) { - SetFocus(); - m_lineBeforeLastClicked = m_lineLastClicked; m_lineLastClicked = current; @@ -4409,6 +4411,8 @@ int wxDataViewCtrl::GetRowByItem( const wxDataViewItem & item ) const void wxDataViewCtrl::Expand( const wxDataViewItem & item ) { + ExpandAncestors( item ); + int row = m_clientArea->GetRowByItem( item ); if (row != -1) m_clientArea->Expand(row);