[gnome-builder/wip/gtk4-port: 311/343] libide/sourceview: add simplified scroll to insert




commit 7ae141c8a330ac48204d377070fee811a95b8cad
Author: Christian Hergert <chergert redhat com>
Date:   Sat Apr 2 02:28:30 2022 -0700

    libide/sourceview: add simplified scroll to insert
    
    We want this abstracted from textview because we'll need our own margin
    control for use with the "scroll offset" feature if it's to be ported
    to GTK 4.

 src/libide/sourceview/ide-source-view.c | 17 +++++++++++++++++
 src/libide/sourceview/ide-source-view.h |  4 +++-
 2 files changed, 20 insertions(+), 1 deletion(-)
---
diff --git a/src/libide/sourceview/ide-source-view.c b/src/libide/sourceview/ide-source-view.c
index 70270601b..dae1ed925 100644
--- a/src/libide/sourceview/ide-source-view.c
+++ b/src/libide/sourceview/ide-source-view.c
@@ -95,3 +95,20 @@ static void
 ide_source_view_init (IdeSourceView *self)
 {
 }
+
+void
+ide_source_view_scroll_to_insert (IdeSourceView *self)
+{
+  GtkTextBuffer *buffer;
+  GtkTextView *view;
+  GtkTextMark *mark;
+
+  g_return_if_fail (IDE_IS_SOURCE_VIEW (self));
+
+  view = GTK_TEXT_VIEW (self);
+  buffer = gtk_text_view_get_buffer (view);
+  mark = gtk_text_buffer_get_insert (buffer);
+
+  /* TODO: use margin to implement  "scroll offset" */
+  gtk_text_view_scroll_to_mark (view, mark, .5, FALSE, .0, .0);
+}
diff --git a/src/libide/sourceview/ide-source-view.h b/src/libide/sourceview/ide-source-view.h
index 445da7e7f..f2ebef5c3 100644
--- a/src/libide/sourceview/ide-source-view.h
+++ b/src/libide/sourceview/ide-source-view.h
@@ -32,6 +32,8 @@ IDE_AVAILABLE_IN_ALL
 G_DECLARE_FINAL_TYPE (IdeSourceView, ide_source_view, IDE, SOURCE_VIEW, GtkSourceView)
 
 IDE_AVAILABLE_IN_ALL
-GtkWidget *ide_source_view_new (void);
+GtkWidget *ide_source_view_new              (void);
+IDE_AVAILABLE_IN_ALL
+void       ide_source_view_scroll_to_insert (IdeSourceView *self);
 
 G_END_DECLS


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