From 2c70cebd05948c3ea4e081669559551d72bd3790 Mon Sep 17 00:00:00 2001 From: Robert Knight Date: Mon, 29 Aug 2011 20:20:42 +0100 Subject: [PATCH] Make the GTK update dialog wider gtk_window_set_default_size() has no effect when the dialog is marked as non-resizable with gtk_window_set_resizable(), so the minimum size is instead achieved by setting a minimum width on the progress bar. --- src/UpdateDialogGtk.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/UpdateDialogGtk.cpp b/src/UpdateDialogGtk.cpp index 4a15f76..6ad2589 100644 --- a/src/UpdateDialogGtk.cpp +++ b/src/UpdateDialogGtk.cpp @@ -44,9 +44,9 @@ void UpdateDialogGtk::init(int argc, char** argv) m_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(m_window),AppInfo::name().c_str()); - gtk_window_set_resizable(GTK_WINDOW(m_window),false); m_progressLabel = gtk_label_new("Installing Updates"); + GtkWidget* windowLayout = gtk_vbox_new(FALSE,3); GtkWidget* buttonLayout = gtk_hbox_new(FALSE,3); GtkWidget* labelLayout = gtk_hbox_new(FALSE,3); @@ -56,6 +56,12 @@ void UpdateDialogGtk::init(int argc, char** argv) m_progressBar = gtk_progress_bar_new(); + // give the dialog a sensible default size by setting a minimum + // width on the progress bar. This is used instead of setting + // a default size for the dialog since gtk_window_set_default_size() + // is ignored when a dialog is marked as non-resizable + gtk_widget_set_usize(m_progressBar,350,-1); + gtk_signal_connect(GTK_OBJECT(m_finishButton),"clicked", GTK_SIGNAL_FUNC(UpdateDialogGtk::finish),this); @@ -77,7 +83,9 @@ void UpdateDialogGtk::init(int argc, char** argv) gtk_widget_show(m_finishButton); gtk_widget_show(m_progressBar); + gtk_window_set_resizable(GTK_WINDOW(m_window),false); gtk_window_set_position(GTK_WINDOW(m_window),GTK_WIN_POS_CENTER); + gtk_widget_show(m_window); }