X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f521bae6653b1c2f0e196fb5c5550c03206e59ce..2ffeccb3b73dbf4424e3ba098e357a2eba36634d:/src/propgrid/propgrid.cpp diff --git a/src/propgrid/propgrid.cpp b/src/propgrid/propgrid.cpp index a2ba810891..a424df5033 100644 --- a/src/propgrid/propgrid.cpp +++ b/src/propgrid/propgrid.cpp @@ -2130,11 +2130,9 @@ void wxPropertyGrid::DrawItemAndChildren( wxPGProperty* p ) if ( m_pState->m_itemsAdded || m_frozen ) return; - wxWindow* wndPrimary = GetEditorControl(); - // Update child control. if ( m_selected && m_selected->GetParent() == p ) - m_selected->UpdateControl(wndPrimary); + RefreshEditor(); const wxPGProperty* lastDrawn = p->GetLastVisibleSubItem(); @@ -2790,8 +2788,7 @@ bool wxPropertyGrid::DoPropertyChanged( wxPGProperty* p, unsigned int selFlags ) // control. if ( selFlags & wxPG_SEL_DIALOGVAL ) { - if ( editor ) - p->GetEditorClass()->UpdateControl(p, editor); + RefreshEditor(); } else { @@ -3638,9 +3635,25 @@ bool wxPropertyGrid::UnfocusEditor() void wxPropertyGrid::RefreshEditor() { - if ( !m_selected || !m_wndEditor || m_frozen ) + wxPGProperty* p = m_selected; + if ( !p ) + return; + + wxWindow* wnd = GetEditorControl(); + if ( !wnd ) return; - m_selected->UpdateControl(m_wndEditor); + + // Set editor font boldness - must do this before + // calling UpdateControl(). + if ( HasFlag(wxPG_BOLD_MODIFIED) ) + { + if ( p->HasFlag(wxPG_PROP_MODIFIED) ) + wnd->SetFont(GetCaptionFont()); + else + wnd->SetFont(GetFont()); + } + + p->GetEditorClass()->UpdateControl(p, wnd); } // -----------------------------------------------------------------------