[gnome-builder] source-view: key-press-event cleanup
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] source-view: key-press-event cleanup
- Date: Sun, 21 Sep 2014 02:01:32 +0000 (UTC)
commit 8a2bdb9c65a545568e44c3f3ca70c57cb9b4b957
Author: Christian Hergert <christian hergert me>
Date: Sat Sep 20 18:02:21 2014 -0700
source-view: key-press-event cleanup
src/editor/gb-source-view.c | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/src/editor/gb-source-view.c b/src/editor/gb-source-view.c
index 24299eb..a6176c3 100644
--- a/src/editor/gb-source-view.c
+++ b/src/editor/gb-source-view.c
@@ -903,6 +903,7 @@ gb_source_view_key_press_event (GtkWidget *widget,
GbSourceViewPrivate *priv;
GbSourceSnippet *snippet;
GbSourceView *view = (GbSourceView *) widget;
+ gboolean ret;
g_return_val_if_fail (GB_IS_SOURCE_VIEW (view), FALSE);
g_return_val_if_fail (event, FALSE);
@@ -966,6 +967,18 @@ gb_source_view_key_press_event (GtkWidget *widget,
}
}
+ /*
+ * Allow the Input Method Context to potentially filter this keystroke.
+ */
+ if ((event->keyval == GDK_KEY_Return) || (event->keyval == GDK_KEY_KP_Enter))
+ if (gtk_text_view_im_context_filter_keypress (GTK_TEXT_VIEW (view), event))
+ return TRUE;
+
+ /*
+ * If we have an auto-indenter and the event is for a trigger key, then we
+ * chain up to the parent class to insert the character, and then let the
+ * auto-indenter fix things up.
+ */
if (priv->auto_indenter &&
gb_source_auto_indenter_is_trigger (priv->auto_indenter, event))
{
@@ -974,10 +987,6 @@ gb_source_view_key_press_event (GtkWidget *widget,
GtkTextIter end;
gchar *indent;
- if ((event->keyval == GDK_KEY_Return) || (event->keyval == GDK_KEY_KP_Enter))
- if (gtk_text_view_im_context_filter_keypress (GTK_TEXT_VIEW (view), event))
- return TRUE;
-
/*
* Insert into the buffer so the auto-indenter can see it. If
* GtkSourceView:auto-indent is set, then we will end up with very
@@ -1013,7 +1022,9 @@ gb_source_view_key_press_event (GtkWidget *widget,
return TRUE;
}
- return GTK_WIDGET_CLASS (gb_source_view_parent_class)->key_press_event (widget, event);
+ ret = GTK_WIDGET_CLASS (gb_source_view_parent_class)->key_press_event (widget, event);
+
+ return ret;
}
static cairo_region_t *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]