diff --git a/ChangeLog b/ChangeLog index 0a7139172e..76ebf663ad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2006-12-07 Paolo Maggi + + Fixes bug #383407 + + * gtk/gtkentry.c (gtk_entry_set_text): check for + completion->priv->changed_id > 0 before calling + g_signal_handler_[un]block. + (gtk_entry_completion_key_press): does not block/unblock the "changed" + signal before calling gtk_entry_set_text. + 2006-12-07 Carlos Garnacho * gtk/gtkcellrendererprogress (compute_dimensions): do not use diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 30f96f1072..2656a316c4 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -4183,7 +4183,7 @@ gtk_entry_set_text (GtkEntry *entry, return; completion = gtk_entry_get_completion (entry); - if (completion) + if (completion && completion->priv->changed_id > 0) g_signal_handler_block (entry, completion->priv->changed_id); gtk_editable_delete_text (GTK_EDITABLE (entry), 0, -1); @@ -4191,7 +4191,7 @@ gtk_entry_set_text (GtkEntry *entry, tmp_pos = 0; gtk_editable_insert_text (GTK_EDITABLE (entry), text, strlen (text), &tmp_pos); - if (completion) + if (completion && completion->priv->changed_id > 0) g_signal_handler_unblock (entry, completion->priv->changed_id); } @@ -5646,9 +5646,7 @@ gtk_entry_completion_key_press (GtkWidget *widget, completion->priv->text_column, &str, -1); - g_signal_handler_block (widget, completion->priv->changed_id); gtk_entry_set_text (GTK_ENTRY (widget), str); - g_signal_handler_unblock (widget, completion->priv->changed_id); /* move the cursor to the end */ gtk_editable_set_position (GTK_EDITABLE (widget), -1);