summaryrefslogtreecommitdiff
path: root/gtk/gtkentry.c
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-12-17 02:59:18 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-12-17 02:59:18 +0000
commit24899adb05d1f366e2df6780854627b145f59307 (patch)
tree8c07a21ff6fa45bf1e35442b09bde3350342eeef /gtk/gtkentry.c
parent85e7cab2ede7b6ce65c769973ac47151ee1d356d (diff)
downloadgtk+-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.c19
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