[gtksourceview] vim: add helper to scroll insert onscreen



commit 0c17a7f22144b3c4f85c54c95cf484e67820d4d8
Author: Christian Hergert <chergert redhat com>
Date:   Thu Nov 18 17:07:42 2021 -0800

    vim: add helper to scroll insert onscreen

 gtksourceview/vim/gtksourcevimstate.c | 16 ++++++++++++++++
 gtksourceview/vim/gtksourcevimstate.h |  1 +
 2 files changed, 17 insertions(+)
---
diff --git a/gtksourceview/vim/gtksourcevimstate.c b/gtksourceview/vim/gtksourcevimstate.c
index 1e9111f9..b21b747a 100644
--- a/gtksourceview/vim/gtksourcevimstate.c
+++ b/gtksourceview/vim/gtksourcevimstate.c
@@ -1460,3 +1460,19 @@ gtk_source_vim_state_jump_forward (GtkSourceVimState *self,
 
        return gtk_source_vim_jumplist_next (jumplist, iter);
 }
+
+void
+gtk_source_vim_state_scroll_insert_onscreen (GtkSourceVimState *self)
+{
+       GtkSourceView *view;
+
+       g_return_if_fail (GTK_SOURCE_IS_VIM_STATE (self));
+
+       if ((view = gtk_source_vim_state_get_view (self)))
+       {
+               GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
+               GtkTextMark *mark = gtk_text_buffer_get_insert (buffer);
+
+               gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW (view), mark);
+       }
+}
diff --git a/gtksourceview/vim/gtksourcevimstate.h b/gtksourceview/vim/gtksourcevimstate.h
index ee1dd94f..6b12bde5 100644
--- a/gtksourceview/vim/gtksourcevimstate.h
+++ b/gtksourceview/vim/gtksourcevimstate.h
@@ -102,6 +102,7 @@ void               gtk_source_vim_state_scroll_line                (GtkSourceVim
                                                                     int                       count);
 void               gtk_source_vim_state_z_scroll                   (GtkSourceVimState        *self,
                                                                     double                    yalign);
+void               gtk_source_vim_state_scroll_insert_onscreen     (GtkSourceVimState        *self);
 void               gtk_source_vim_state_select                     (GtkSourceVimState        *self,
                                                                     const GtkTextIter        *insert,
                                                                     const GtkTextIter        *selection);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]