Bug #653468. Fixed by Kurt Miller <kurt@intricatesoftware.com>.
Fix the broken auto-close option in progress and list dialogs.
This commit is contained in:
parent
7c234ed9b7
commit
c89ce9c381
@ -81,12 +81,13 @@ zenity_progress_handle_stdin (GIOChannel *channel,
|
|||||||
static GObject *progress_bar;
|
static GObject *progress_bar;
|
||||||
static GObject *progress_label;
|
static GObject *progress_label;
|
||||||
float percentage = 0.0;
|
float percentage = 0.0;
|
||||||
|
GIOStatus status = G_IO_STATUS_NORMAL;
|
||||||
|
|
||||||
progress_data = (ZenityProgressData *) data;
|
progress_data = (ZenityProgressData *) data;
|
||||||
progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
|
progress_bar = gtk_builder_get_object (builder, "zenity_progress_bar");
|
||||||
progress_label = gtk_builder_get_object (builder, "zenity_progress_text");
|
progress_label = gtk_builder_get_object (builder, "zenity_progress_text");
|
||||||
|
|
||||||
if ((condition == G_IO_IN) || (condition == G_IO_IN + G_IO_HUP)) {
|
if ((condition & G_IO_IN) != 0) {
|
||||||
GString *string;
|
GString *string;
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
|
|
||||||
@ -95,8 +96,6 @@ zenity_progress_handle_stdin (GIOChannel *channel,
|
|||||||
while (channel->is_readable != TRUE)
|
while (channel->is_readable != TRUE)
|
||||||
;
|
;
|
||||||
do {
|
do {
|
||||||
gint status;
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
status = g_io_channel_read_line_string (channel, string, NULL, &error);
|
status = g_io_channel_read_line_string (channel, string, NULL, &error);
|
||||||
|
|
||||||
@ -175,11 +174,11 @@ zenity_progress_handle_stdin (GIOChannel *channel,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} while (g_io_channel_get_buffer_condition (channel) == G_IO_IN);
|
} while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) == G_IO_IN && status != G_IO_STATUS_EOF);
|
||||||
g_string_free (string, TRUE);
|
g_string_free (string, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((condition != G_IO_IN) && (condition != G_IO_IN + G_IO_HUP)) {
|
if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
|
||||||
/* We assume that we are done, so stop the pulsating and de-sensitize the buttons */
|
/* We assume that we are done, so stop the pulsating and de-sensitize the buttons */
|
||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
|
|
||||||
|
@ -139,6 +139,7 @@ zenity_tree_handle_stdin (GIOChannel *channel,
|
|||||||
static gboolean editable;
|
static gboolean editable;
|
||||||
static gboolean toggles;
|
static gboolean toggles;
|
||||||
static gboolean first_time = TRUE;
|
static gboolean first_time = TRUE;
|
||||||
|
GIOStatus status = G_IO_STATUS_NORMAL;
|
||||||
|
|
||||||
tree_view = GTK_TREE_VIEW (data);
|
tree_view = GTK_TREE_VIEW (data);
|
||||||
n_columns = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
|
n_columns = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (tree_view), "n_columns"));
|
||||||
@ -152,7 +153,7 @@ zenity_tree_handle_stdin (GIOChannel *channel,
|
|||||||
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
|
gtk_list_store_append (GTK_LIST_STORE (model), &iter);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((condition == G_IO_IN) || (condition == G_IO_IN + G_IO_HUP)) {
|
if ((condition & G_IO_IN) == G_IO_IN) {
|
||||||
GString *string;
|
GString *string;
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
|
|
||||||
@ -161,8 +162,6 @@ zenity_tree_handle_stdin (GIOChannel *channel,
|
|||||||
while ((g_io_channel_get_flags(channel) & G_IO_FLAG_IS_READABLE) != G_IO_FLAG_IS_READABLE)
|
while ((g_io_channel_get_flags(channel) & G_IO_FLAG_IS_READABLE) != G_IO_FLAG_IS_READABLE)
|
||||||
;
|
;
|
||||||
do {
|
do {
|
||||||
gint status;
|
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (g_io_channel_get_flags(channel) & G_IO_FLAG_IS_READABLE)
|
if (g_io_channel_get_flags(channel) & G_IO_FLAG_IS_READABLE)
|
||||||
status = g_io_channel_read_line_string (channel, string, NULL, &error);
|
status = g_io_channel_read_line_string (channel, string, NULL, &error);
|
||||||
@ -221,11 +220,11 @@ zenity_tree_handle_stdin (GIOChannel *channel,
|
|||||||
|
|
||||||
column_count++;
|
column_count++;
|
||||||
|
|
||||||
} while (g_io_channel_get_buffer_condition (channel) == G_IO_IN);
|
} while ((g_io_channel_get_buffer_condition (channel) & G_IO_IN) == G_IO_IN && status != G_IO_STATUS_EOF);
|
||||||
g_string_free (string, TRUE);
|
g_string_free (string, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((condition != G_IO_IN) && (condition != G_IO_IN + G_IO_HUP)) {
|
if ((condition & G_IO_IN) != G_IO_IN || status == G_IO_STATUS_EOF) {
|
||||||
g_io_channel_shutdown (channel, TRUE, NULL);
|
g_io_channel_shutdown (channel, TRUE, NULL);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user