From f0dfc8a82038de334c545a4add70851051dabccc Mon Sep 17 00:00:00 2001 From: Lucas Rocha Date: Mon, 10 Aug 2009 03:22:05 +0100 Subject: [progress] Improve code to update of percentage --- src/progress.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/progress.c b/src/progress.c index a0868eaa..bc1c102d 100644 --- a/src/progress.c +++ b/src/progress.c @@ -156,21 +156,24 @@ zenity_progress_handle_stdin (GIOChannel *channel, continue; /* Now try to convert the thing to a number */ - percentage = atoi (string->str); - if (percentage >= 100) { + percentage = CLAMP(atoi (string->str), 0, 100); + + gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), + percentage / 100.0); + + progress_data->percentage = percentage; + + if (percentage == 100) { GObject *button; + button = gtk_builder_get_object(builder, "zenity_progress_ok_button"); - gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), 1.0); - progress_data->percentage = 100; gtk_widget_set_sensitive(GTK_WIDGET (button), TRUE); gtk_widget_grab_focus(GTK_WIDGET (button)); + if (progress_data->autoclose) { zen_data->exit_code = zenity_util_return_exit_code (ZENITY_OK); gtk_main_quit(); } - } else { - gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), percentage / 100.0); - progress_data->percentage = percentage; } } -- cgit