// Call with NULL to de-select property
bool wxPropertyGrid::DoSelectProperty( wxPGProperty* p, unsigned int flags )
{
+ wxPanel* canvas = GetPanel();
+
/*
if (p)
wxLogDebug(wxT("SelectProperty( %s (%s[%i]) )"),p->m_label.c_str(),
}
else
{
- wxScrolledWindow::SetFocus();
+ canvas->SetFocusIgnoringChildren();
m_editorFocused = 0;
}
}
if ( m_wndEditor )
{
- wxASSERT_MSG( m_wndEditor->GetParent() == m_canvas,
+ wxASSERT_MSG( m_wndEditor->GetParent() == canvas,
wxT("CreateControls must use result of wxPropertyGrid::GetPanel() as parent of controls.") );
// Set validator, if any
if ( m_wndEditor2 )
{
- wxASSERT_MSG( m_wndEditor2->GetParent() == m_canvas,
+ wxASSERT_MSG( m_wndEditor2->GetParent() == canvas,
wxT("CreateControls must use result of wxPropertyGrid::GetPanel() as parent of controls.") );
// Get proper id for wndSecondary
else
{
// wxGTK atleast seems to need this (wxMSW not)
- SetFocus();
+ canvas->SetFocusIgnoringChildren();
}
EditorsValueWasNotModified();
DrawItems(p, p);
}
+ else
+ {
+ // Make sure focus is in grid
+ canvas->SetFocusIgnoringChildren();
+ }
ClearInternalFlag(wxPG_FL_IN_SELECT_PROPERTY);
}
// Need to set focus?
if ( !(m_iFlags & wxPG_FL_FOCUSED) )
{
- m_canvas->SetFocus();
+ m_canvas->SetFocusIgnoringChildren();
}
wxPropertyGridPageState* state = m_pState;