From: Paul Cornett Date: Thu, 7 Aug 2008 06:51:10 +0000 (+0000) Subject: fix sizing of extra control X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/f1d5aa4eca541a2f90044a63f555985d6bd4adf3?ds=inline fix sizing of extra control git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/gtk/filedlg.h b/include/wx/gtk/filedlg.h index 38090b16e1..f81d91ca69 100644 --- a/include/wx/gtk/filedlg.h +++ b/include/wx/gtk/filedlg.h @@ -7,8 +7,8 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifndef __GTKFILEDLGH__ -#define __GTKFILEDLGH__ +#ifndef _WX_GTKFILEDLG_H_ +#define _WX_GTKFILEDLG_H_ #include "wx/gtk/filectrl.h" // for wxGtkFileChooser @@ -60,11 +60,13 @@ protected: private: - DECLARE_DYNAMIC_CLASS(wxFileDialog) - DECLARE_EVENT_TABLE() void OnFakeOk( wxCommandEvent &event ); + void OnSize(wxSizeEvent&); wxGtkFileChooser m_fc; + + DECLARE_DYNAMIC_CLASS(wxFileDialog) + DECLARE_EVENT_TABLE() }; -#endif // __GTKFILEDLGH__ +#endif // _WX_GTKFILEDLG_H_ diff --git a/src/gtk/filedlg.cpp b/src/gtk/filedlg.cpp index f7f6d51fb7..62fc00864a 100644 --- a/src/gtk/filedlg.cpp +++ b/src/gtk/filedlg.cpp @@ -145,6 +145,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxFileDialog,wxFileDialogBase) BEGIN_EVENT_TABLE(wxFileDialog,wxFileDialogBase) EVT_BUTTON(wxID_OK, wxFileDialog::OnFakeOk) + EVT_SIZE(wxFileDialog::OnSize) END_EVENT_TABLE() wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, @@ -294,9 +295,7 @@ int wxFileDialog::ShowModal() { GtkWidget *control = m_extraControl->m_widget; - // see wxNotebook::InsertPage() for explaination - // why gtk_widget_unparent() is not used here - control->parent = NULL; + wxASSERT(control->parent == NULL); gtk_widget_show(control); gtk_file_chooser_set_extra_widget(GTK_FILE_CHOOSER(m_widget), control); @@ -311,6 +310,12 @@ void wxFileDialog::DoSetSize(int WXUNUSED(x), int WXUNUSED(y), { } +void wxFileDialog::OnSize(wxSizeEvent&) +{ + // avoid calling DoLayout(), which will set the (wrong) size of + // m_extraControl, its size is managed by GtkFileChooser +} + wxString wxFileDialog::GetPath() const { return m_fc.GetPath();