diff --git a/ChangeLog b/ChangeLog index e7af3fe62d..9ef98e2627 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Wed Mar 20 19:00:03 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_text): Short-circuit + the text to the exact same thing, so we don't + unexpectedly change the selection or cursor position. + (#74290, John Ellis.) + Thu Mar 21 00:05:14 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_get_background_area), diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index e7af3fe62d..9ef98e2627 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,10 @@ +Wed Mar 20 19:00:03 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_text): Short-circuit + the text to the exact same thing, so we don't + unexpectedly change the selection or cursor position. + (#74290, John Ellis.) + Thu Mar 21 00:05:14 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_get_background_area), diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index e7af3fe62d..9ef98e2627 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,10 @@ +Wed Mar 20 19:00:03 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_text): Short-circuit + the text to the exact same thing, so we don't + unexpectedly change the selection or cursor position. + (#74290, John Ellis.) + Thu Mar 21 00:05:14 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_get_background_area), diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index e7af3fe62d..9ef98e2627 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,10 @@ +Wed Mar 20 19:00:03 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_text): Short-circuit + the text to the exact same thing, so we don't + unexpectedly change the selection or cursor position. + (#74290, John Ellis.) + Thu Mar 21 00:05:14 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_get_background_area), diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index e7af3fe62d..9ef98e2627 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,10 @@ +Wed Mar 20 19:00:03 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_text): Short-circuit + the text to the exact same thing, so we don't + unexpectedly change the selection or cursor position. + (#74290, John Ellis.) + Thu Mar 21 00:05:14 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_get_background_area), diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index e7af3fe62d..9ef98e2627 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,10 @@ +Wed Mar 20 19:00:03 2002 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_set_text): Short-circuit + the text to the exact same thing, so we don't + unexpectedly change the selection or cursor position. + (#74290, John Ellis.) + Thu Mar 21 00:05:14 2002 Kristian Rietveld * gtk/gtktreeview.c (gtk_tree_view_get_background_area), diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 9ef6c6e887..3e6534e88a 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -3266,14 +3266,20 @@ gtk_entry_new_with_max_length (gint max) } void -gtk_entry_set_text (GtkEntry *entry, +gtk_entry_set_text (GtkEntry *entry, const gchar *text) { gint tmp_pos; g_return_if_fail (GTK_IS_ENTRY (entry)); g_return_if_fail (text != NULL); - + + /* Actually setting the text will affect the cursor and selection; + * if the contents don't actually change, this will look odd to the user. + */ + if (strcmp (entry->text, text) == 0) + return; + gtk_editable_delete_text (GTK_EDITABLE (entry), 0, -1); tmp_pos = 0;