From 7dd3ce30f28cd6f23fa409f03c715c5dc017584f Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Mon, 2 Mar 2009 22:16:40 +0000 Subject: [PATCH] allow to leave the widget with Ctrl+Tab. Handle GDK_KP_Tab and 2009-03-02 Michael Natterer * app/widgets/gimptagentry.c (gimp_tag_entry_key_press): allow to leave the widget with Ctrl+Tab. Handle GDK_KP_Tab and GDK_ISO_Left_Tab. svn path=/trunk/; revision=28095 --- ChangeLog | 6 ++++++ app/widgets/gimptagentry.c | 19 ++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 47066dd6d6..339eee9f8d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-03-02 Michael Natterer + + * app/widgets/gimptagentry.c (gimp_tag_entry_key_press): allow to + leave the widget with Ctrl+Tab. Handle GDK_KP_Tab and + GDK_ISO_Left_Tab. + 2009-03-02 Michael Natterer * app/core/gimptagged.[ch]: add gimp_tagged_set_tags() which diff --git a/app/widgets/gimptagentry.c b/app/widgets/gimptagentry.c index 5d86ea9391..5eec011fc6 100644 --- a/app/widgets/gimptagentry.c +++ b/app/widgets/gimptagentry.c @@ -1288,9 +1288,22 @@ gimp_tag_entry_key_press (GtkWidget *widget, switch (event->keyval) { case GDK_Tab: - entry->tab_completion_index++; - entry->suppress_tag_query++; - g_idle_add ((GSourceFunc) gimp_tag_entry_auto_complete, entry); + case GDK_KP_Tab: + case GDK_ISO_Left_Tab: + /* allow to leave the widget with Ctrl+Tab */ + if (! (event->state & GDK_CONTROL_MASK)) + { + entry->tab_completion_index++; + entry->suppress_tag_query++; + g_idle_add ((GSourceFunc) gimp_tag_entry_auto_complete, entry); + } + else + { + gimp_tag_entry_commit_tags (entry); + g_signal_emit_by_name (widget, "move-focus", + (event->state & GDK_SHIFT_MASK) ? + GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD); + } return TRUE; case GDK_Return: -- 2.20.1