diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2009-01-31 05:52:58 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2009-01-31 05:52:58 +0000 |
commit | e380d4143d50eca4f715aec7f0a9fdb5ce667890 (patch) | |
tree | 880dafa40691ebd155be198976899cad7985e9c2 | |
parent | dbb97978a83ec17f9fa50169e20f98e33a6cd843 (diff) | |
download | gdk-pixbuf-e380d4143d50eca4f715aec7f0a9fdb5ce667890.tar.gz |
Be more careful with the beeps
svn path=/trunk/; revision=22262
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | gtk/gtktextview.c | 17 |
2 files changed, 16 insertions, 7 deletions
@@ -1,5 +1,11 @@ 2009-01-30 Matthias Clasen <mclasen@redhat.com> + * gtk/gtktextview.c (preedit_changed_handler): Be more careful + with the beeps, since preedit-changed is occasionally emitted + without actual input. Pointed out by Tor Lillqvist. + +2009-01-30 Matthias Clasen <mclasen@redhat.com> + Bug 569918 – 64bit portability issue in gtkrecentchooser.c * gtk/gtkrecentchooser.c (gtk_recent_chooser_set_use_action_appearance): diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index fa494140d..bab4155bf 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -7320,21 +7320,24 @@ gtk_text_view_preedit_changed_handler (GtkIMContext *context, /* Keypress events are passed to input method even if cursor position is not editable; * so beep here if it's multi-key input sequence, input method will be reset in - * key-press-event handler. */ - if (!gtk_text_iter_can_insert (&iter, text_view->editable)) + * key-press-event handler. + */ + gtk_im_context_get_preedit_string (context, &str, &attrs, &cursor_pos); + + if (str && str[0] && !gtk_text_iter_can_insert (&iter, text_view->editable)) { gtk_widget_error_bell (GTK_WIDGET (text_view)); - return; + goto out; } - gtk_im_context_get_preedit_string (context, &str, &attrs, &cursor_pos); gtk_text_layout_set_preedit_string (text_view->layout, str, attrs, cursor_pos); - pango_attr_list_unref (attrs); - g_free (str); - if (GTK_WIDGET_HAS_FOCUS (text_view)) gtk_text_view_scroll_mark_onscreen (text_view, gtk_text_buffer_get_insert (get_buffer (text_view))); + +out: + pango_attr_list_unref (attrs); + g_free (str); } static gboolean |