From: Matthias Clasen Date: Tue, 13 Sep 2005 18:50:39 +0000 (+0000) Subject: Let GDK_Return pass through in some more cases. X-Git-Url: http://pileus.org/git/?a=commitdiff_plain;h=4957e325c0d27e4a093fa70d3d2382a1b4558cbc;p=~andy%2Fgtk Let GDK_Return pass through in some more cases. 2005-09-13 Matthias Clasen * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): Let GDK_Return pass through in some more cases. * gtk/gtkentry.c (gtk_entry_key_press): Reset the im context before activating the entry. --- diff --git a/ChangeLog b/ChangeLog index d01059fe1..406213137 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2005-09-13 Matthias Clasen + * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): + Let GDK_Return pass through in some more cases. + + * gtk/gtkentry.c (gtk_entry_key_press): Reset the im context before + activating the entry. + * gtk/gtkiconview.c (gtk_icon_view_class_init): (gtk_icon_view_get_dest_item_at_pos): Fix typos in the docs. (#316008, #316027, #316121, Guillaume Cottenceau) diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index d01059fe1..406213137 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,11 @@ 2005-09-13 Matthias Clasen + * gtk/gtkimcontextsimple.c (gtk_im_context_simple_filter_keypress): + Let GDK_Return pass through in some more cases. + + * gtk/gtkentry.c (gtk_entry_key_press): Reset the im context before + activating the entry. + * gtk/gtkiconview.c (gtk_icon_view_class_init): (gtk_icon_view_get_dest_item_at_pos): Fix typos in the docs. (#316008, #316027, #316121, Guillaume Cottenceau) diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index 60cd89e37..2814f2b34 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -1893,16 +1893,20 @@ gtk_entry_key_press (GtkWidget *widget, } } - if (event->keyval == GDK_Return || event->keyval == GDK_ISO_Enter - || event->keyval == GDK_Escape) + if (event->keyval == GDK_Return || + event->keyval == GDK_KP_Enter || + event->keyval == GDK_ISO_Enter || + event->keyval == GDK_Escape) { GtkEntryCompletion *completion = gtk_entry_get_completion (entry); - + if (completion && completion->priv->completion_timeout) { g_source_remove (completion->priv->completion_timeout); completion->priv->completion_timeout = 0; } + + gtk_entry_reset_im_context (entry); } if (GTK_WIDGET_CLASS (parent_class)->key_press_event (widget, event)) diff --git a/gtk/gtkimcontextsimple.c b/gtk/gtkimcontextsimple.c index ac98ac065..0bea1c646 100644 --- a/gtk/gtkimcontextsimple.c +++ b/gtk/gtkimcontextsimple.c @@ -1384,7 +1384,11 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context, (context_simple->in_hex_sequence && !hex_keyval && !is_hex_start && !is_space && !is_backspace)) { - if (event->state & (gtk_accelerator_get_default_mod_mask () & ~GDK_SHIFT_MASK)) + if (event->state & (gtk_accelerator_get_default_mod_mask () & ~GDK_SHIFT_MASK) || + (context_simple->in_hex_sequence && context_simple->modifiers_dropped && + (event->keyval == GDK_Return || + event->keyval == GDK_ISO_Enter || + event->keyval == GDK_KP_Enter))) return FALSE; }