diff options
-rw-r--r-- | gtksourceview/gtksourceview-private.h | 1 | ||||
-rw-r--r-- | gtksourceview/gtksourceview-snippets.c | 4 | ||||
-rw-r--r-- | gtksourceview/gtksourceview.c | 13 |
3 files changed, 18 insertions, 0 deletions
diff --git a/gtksourceview/gtksourceview-private.h b/gtksourceview/gtksourceview-private.h index 1f5ad0b2..b1653697 100644 --- a/gtksourceview/gtksourceview-private.h +++ b/gtksourceview/gtksourceview-private.h @@ -86,6 +86,7 @@ gboolean _gtk_source_view_snippets_key_pressed (GtkSourceViewSnippets *snippets, guint keycode, GdkModifierType state); +void _gtk_source_view_hide_completion (GtkSourceView *view); gboolean _gtk_source_view_get_current_line_background (GtkSourceView *view, GdkRGBA *rgba); gboolean _gtk_source_view_get_current_line_number_background (GtkSourceView *view, diff --git a/gtksourceview/gtksourceview-snippets.c b/gtksourceview/gtksourceview-snippets.c index 36711278..e538ddba 100644 --- a/gtksourceview/gtksourceview-snippets.c +++ b/gtksourceview/gtksourceview-snippets.c @@ -593,6 +593,8 @@ _gtk_source_view_snippets_key_pressed (GtkSourceViewSnippets *snippets, */ if (snippet != NULL) { + _gtk_source_view_hide_completion (snippets->view); + if ((state & modifiers) == 0) { if (!_gtk_source_snippet_move_next (snippet)) @@ -629,6 +631,8 @@ _gtk_source_view_snippets_key_pressed (GtkSourceViewSnippets *snippets, !has_selection && gtk_source_view_snippets_try_expand (snippets, &end)) { + _gtk_source_view_hide_completion (snippets->view); + gtk_source_view_snippets_scroll_to_insert (snippets); ret = GDK_EVENT_STOP; diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c index f8f51835..70382569 100644 --- a/gtksourceview/gtksourceview.c +++ b/gtksourceview/gtksourceview.c @@ -5563,3 +5563,16 @@ _gtk_source_view_has_snippet (GtkSourceView *view) return priv->snippets.queue.length > 0; } + +void +_gtk_source_view_hide_completion (GtkSourceView *view) +{ + GtkSourceViewPrivate *priv = gtk_source_view_get_instance_private (view); + + g_return_if_fail (GTK_SOURCE_IS_VIEW (view)); + + if (priv->completion != NULL) + { + gtk_source_completion_hide (priv->completion); + } +} |