diff options
author | Owen Taylor <otaylor@redhat.com> | 2002-12-17 02:59:18 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2002-12-17 02:59:18 +0000 |
commit | 24899adb05d1f366e2df6780854627b145f59307 (patch) | |
tree | 8c07a21ff6fa45bf1e35442b09bde3350342eeef /gtk/gtkentry.c | |
parent | 85e7cab2ede7b6ce65c769973ac47151ee1d356d (diff) | |
download | gtk+-24899adb05d1f366e2df6780854627b145f59307.tar.gz |
Call gtk_entry_set_position_internal() that takes a new "reset_IM"
Mon Dec 16 21:39:28 2002 Owen Taylor <otaylor@redhat.com>
* gtk/gtkentry.c (gtk_entry_enter_text): Call
gtk_entry_set_position_internal() that takes a
new "reset_IM" parameter, so that we avoid the
problem where committing text would reset the
input method. (#74381, Kang Jeong-Hee)
Diffstat (limited to 'gtk/gtkentry.c')
-rw-r--r-- | gtk/gtkentry.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 2e9e7aa54c..9f5f9fa63b 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -1751,22 +1751,29 @@ gtk_entry_get_chars (GtkEditable *editable, } static void -gtk_entry_real_set_position (GtkEditable *editable, - gint position) +gtk_entry_set_position_internal (GtkEntry *entry, + gint position, + gboolean reset_im) { - GtkEntry *entry = GTK_ENTRY (editable); - if (position < 0 || position > entry->text_length) position = entry->text_length; if (position != entry->current_pos || position != entry->selection_bound) { - gtk_entry_reset_im_context (entry); + if (reset_im) + gtk_entry_reset_im_context (entry); gtk_entry_set_positions (entry, position, position); } } +static void +gtk_entry_real_set_position (GtkEditable *editable, + gint position) +{ + gtk_entry_set_position_internal (GTK_ENTRY (editable), position, TRUE); +} + static gint gtk_entry_get_position (GtkEditable *editable) { @@ -2359,7 +2366,7 @@ gtk_entry_enter_text (GtkEntry *entry, tmp_pos = entry->current_pos; gtk_editable_insert_text (editable, str, strlen (str), &tmp_pos); - gtk_editable_set_position (editable, tmp_pos); + gtk_entry_set_position_internal (entry, tmp_pos, FALSE); } /* All changes to entry->current_pos and entry->selection_bound |