[gnome-builder/wip/libide-merge] add helper to take saved cursor position into account
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/libide-merge] add helper to take saved cursor position into account
- Date: Thu, 19 Mar 2015 20:26:51 +0000 (UTC)
commit a4b01e379255f0fb2cdb2e60400b732a2f994a23
Author: Christian Hergert <christian hergert me>
Date: Thu Mar 19 13:26:09 2015 -0700
add helper to take saved cursor position into account
libide/ide-source-view.c | 38 ++++++++++++++++++++++++++++++++++++++
libide/ide-source-view.h | 3 +++
2 files changed, 41 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-source-view.c b/libide/ide-source-view.c
index 11a3bab..99b08cd 100644
--- a/libide/ide-source-view.c
+++ b/libide/ide-source-view.c
@@ -6163,3 +6163,41 @@ ide_source_view_set_highlight_current_line (IdeSourceView *self,
g_object_notify (G_OBJECT (self), "highlight-current-line");
}
}
+
+void
+ide_source_view_get_visual_position (IdeSourceView *self,
+ guint *line,
+ guint *column)
+{
+ IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
+ GtkTextBuffer *buffer;
+ GtkTextIter iter;
+
+ g_return_if_fail (IDE_IS_SOURCE_VIEW (self));
+
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (self));
+
+ if (!gtk_widget_has_focus (GTK_WIDGET (self)))
+ {
+ gint offset;
+
+ gtk_text_buffer_get_iter_at_line (buffer, &iter, priv->saved_line);
+
+ for (offset = priv->saved_line_offset; offset; offset--)
+ if (gtk_text_iter_ends_line (&iter) || !gtk_text_iter_forward_char (&iter))
+ break;
+ }
+ else
+ {
+ GtkTextMark *mark;
+
+ mark = gtk_text_buffer_get_insert (buffer);
+ gtk_text_buffer_get_iter_at_mark (buffer, &iter, mark);
+ }
+
+ if (line)
+ *line = gtk_text_iter_get_line (&iter);
+
+ if (column)
+ *column = gtk_source_view_get_visual_column (GTK_SOURCE_VIEW (self), &iter);
+}
diff --git a/libide/ide-source-view.h b/libide/ide-source-view.h
index 5a0466f..735fdaf 100644
--- a/libide/ide-source-view.h
+++ b/libide/ide-source-view.h
@@ -275,6 +275,9 @@ struct _IdeSourceViewClass
void ide_source_view_clear_snippets (IdeSourceView *self);
IdeBackForwardList *ide_source_view_get_back_forward_list (IdeSourceView *self);
+void ide_source_view_get_visual_position (IdeSourceView *self,
+ guint *line,
+ guint
*line_offset);
gboolean ide_source_view_get_enable_word_completion(IdeSourceView *self);
IdeFileSettings *ide_source_view_get_file_settings (IdeSourceView *self);
const PangoFontDescription *ide_source_view_get_font_desc (IdeSourceView *self);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]