diff --git a/include/wx/filedlg.h b/include/wx/filedlg.h index 8689cc99cd..230caf4163 100644 --- a/include/wx/filedlg.h +++ b/include/wx/filedlg.h @@ -181,6 +181,9 @@ protected: { return m_extraControlCreator != NULL; } // get the size of the extra control by creating and deleting it wxSize GetExtraControlSize(); + // Helper function for native file dialog usage where no wx events + // are processed. + void UpdateExtraControlUI(); private: ExtraControlCreatorFunction m_extraControlCreator; diff --git a/src/common/fldlgcmn.cpp b/src/common/fldlgcmn.cpp index 466ce96d42..340df47af4 100644 --- a/src/common/fldlgcmn.cpp +++ b/src/common/fldlgcmn.cpp @@ -192,6 +192,12 @@ wxSize wxFileDialogBase::GetExtraControlSize() return (*m_extraControlCreator)(&dlg)->GetSize(); } +void wxFileDialogBase::UpdateExtraControlUI() +{ + if ( m_extraControl ) + m_extraControl->UpdateWindowUI(wxUPDATE_UI_RECURSE); +} + void wxFileDialogBase::SetPath(const wxString& path) { wxString ext; diff --git a/src/gtk/filedlg.cpp b/src/gtk/filedlg.cpp index ef23c2de18..6ab3fcae7c 100644 --- a/src/gtk/filedlg.cpp +++ b/src/gtk/filedlg.cpp @@ -496,8 +496,7 @@ void wxFileDialog::GTKSelectionChanged(const wxString& filename) { m_currentlySelectedFilename = filename; - if (m_extraControl) - m_extraControl->UpdateWindowUI(wxUPDATE_UI_RECURSE); + UpdateExtraControlUI(); } #endif // wxUSE_FILEDLG diff --git a/src/msw/filedlg.cpp b/src/msw/filedlg.cpp index 0234a4cece..c112a8656a 100644 --- a/src/msw/filedlg.cpp +++ b/src/msw/filedlg.cpp @@ -353,8 +353,7 @@ void wxFileDialog::MSWOnSelChange(WXHWND hDlg) else m_currentlySelectedFilename.clear(); - if ( m_extraControl ) - m_extraControl->UpdateWindowUI(wxUPDATE_UI_RECURSE); + UpdateExtraControlUI(); } void wxFileDialog::MSWOnTypeChange(WXHWND WXUNUSED(hDlg), int nFilterIndex) @@ -364,8 +363,7 @@ void wxFileDialog::MSWOnTypeChange(WXHWND WXUNUSED(hDlg), int nFilterIndex) // circumstances, so take care before decrementing it. m_currentlySelectedFilterIndex = nFilterIndex ? nFilterIndex - 1 : 0; - if ( m_extraControl ) - m_extraControl->UpdateWindowUI(wxUPDATE_UI_RECURSE); + UpdateExtraControlUI(); } // helper used below in ShowCommFileDialog(): style is used to determine