From 8f05462d59b10f9b84f52a337d6afd1a539d0585 Mon Sep 17 00:00:00 2001 From: Owen Taylor Date: Sun, 12 Nov 2000 04:56:51 +0000 Subject: [PATCH] Call gtk_widget_activate for GDK_Return. Sat Nov 11 23:07:30 2000 Owen Taylor * gtk/gtkentry.c (gtk_entry_key_press): Call gtk_widget_activate for GDK_Return. * gtk/gtkentry.c (gtk_entry_preedit_changed_cb): Fix handling of preedit cursor position. --- ChangeLog | 8 ++++++++ ChangeLog.pre-2-0 | 8 ++++++++ ChangeLog.pre-2-10 | 8 ++++++++ ChangeLog.pre-2-2 | 8 ++++++++ ChangeLog.pre-2-4 | 8 ++++++++ ChangeLog.pre-2-6 | 8 ++++++++ ChangeLog.pre-2-8 | 8 ++++++++ gtk/gtkentry.c | 23 +++++++++++++++-------- 8 files changed, 71 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9a74faf21f..3412cd8620 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Sat Nov 11 23:07:30 2000 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_key_press): Call + gtk_widget_activate for GDK_Return. + + * gtk/gtkentry.c (gtk_entry_preedit_changed_cb): Fix handling + of preedit cursor position. + Sun Nov 5 04:24:53 2000 Owen Taylor * gtk/gtkcellrenderertextpixbuf.c: Make parent_class diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 9a74faf21f..3412cd8620 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,11 @@ +Sat Nov 11 23:07:30 2000 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_key_press): Call + gtk_widget_activate for GDK_Return. + + * gtk/gtkentry.c (gtk_entry_preedit_changed_cb): Fix handling + of preedit cursor position. + Sun Nov 5 04:24:53 2000 Owen Taylor * gtk/gtkcellrenderertextpixbuf.c: Make parent_class diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 9a74faf21f..3412cd8620 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +Sat Nov 11 23:07:30 2000 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_key_press): Call + gtk_widget_activate for GDK_Return. + + * gtk/gtkentry.c (gtk_entry_preedit_changed_cb): Fix handling + of preedit cursor position. + Sun Nov 5 04:24:53 2000 Owen Taylor * gtk/gtkcellrenderertextpixbuf.c: Make parent_class diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 9a74faf21f..3412cd8620 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,11 @@ +Sat Nov 11 23:07:30 2000 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_key_press): Call + gtk_widget_activate for GDK_Return. + + * gtk/gtkentry.c (gtk_entry_preedit_changed_cb): Fix handling + of preedit cursor position. + Sun Nov 5 04:24:53 2000 Owen Taylor * gtk/gtkcellrenderertextpixbuf.c: Make parent_class diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 9a74faf21f..3412cd8620 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,11 @@ +Sat Nov 11 23:07:30 2000 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_key_press): Call + gtk_widget_activate for GDK_Return. + + * gtk/gtkentry.c (gtk_entry_preedit_changed_cb): Fix handling + of preedit cursor position. + Sun Nov 5 04:24:53 2000 Owen Taylor * gtk/gtkcellrenderertextpixbuf.c: Make parent_class diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 9a74faf21f..3412cd8620 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,11 @@ +Sat Nov 11 23:07:30 2000 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_key_press): Call + gtk_widget_activate for GDK_Return. + + * gtk/gtkentry.c (gtk_entry_preedit_changed_cb): Fix handling + of preedit cursor position. + Sun Nov 5 04:24:53 2000 Owen Taylor * gtk/gtkcellrenderertextpixbuf.c: Make parent_class diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 9a74faf21f..3412cd8620 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +Sat Nov 11 23:07:30 2000 Owen Taylor + + * gtk/gtkentry.c (gtk_entry_key_press): Call + gtk_widget_activate for GDK_Return. + + * gtk/gtkentry.c (gtk_entry_preedit_changed_cb): Fix handling + of preedit cursor position. + Sun Nov 5 04:24:53 2000 Owen Taylor * gtk/gtkcellrenderertextpixbuf.c: Make parent_class diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index fcffeedf4b..a1cb51773b 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -1040,15 +1040,22 @@ gtk_entry_key_press (GtkWidget *widget, if (!entry->editable) return FALSE; - /* Activate key bindings - */ - if (GTK_WIDGET_CLASS (parent_class)->key_press_event (widget, event)) + if (gtk_im_context_filter_keypress (entry->im_context, event)) + { + entry->need_im_reset = TRUE; + return TRUE; + } + else if (GTK_WIDGET_CLASS (parent_class)->key_press_event (widget, event)) + /* Activate key bindings + */ return TRUE; + else if (event->keyval == GDK_Return) + { + gtk_widget_activate (widget); + return TRUE; + } - /* Not bound, pass to input method - */ - entry->need_im_reset = TRUE; - return gtk_im_context_filter_keypress (entry->im_context, event); + return FALSE; } static gint @@ -1564,7 +1571,7 @@ gtk_entry_preedit_changed_cb (GtkIMContext *context, &cursor_pos); entry->preedit_length = strlen (preedit_string); cursor_pos = CLAMP (cursor_pos, 0, g_utf8_strlen (preedit_string, -1)); - cursor_pos = g_utf8_offset_to_pointer (preedit_string, cursor_pos) - preedit_string; + entry->preedit_cursor = g_utf8_offset_to_pointer (preedit_string, cursor_pos) - preedit_string; g_free (preedit_string); gtk_entry_recompute (entry);