[gtksourceview] Revalidate iters passed to indent/unindent_lines
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] Revalidate iters passed to indent/unindent_lines
- Date: Sun, 29 Mar 2015 20:17:44 +0000 (UTC)
commit ecaea906724bf5c12ce70fff4b6e14ff919ba0ba
Author: Paolo Borelli <pborelli gnome org>
Date: Sun Mar 29 21:40:43 2015 +0200
Revalidate iters passed to indent/unindent_lines
gtksourceview/gtksourceview.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c
index fbb115b..b6f0a03 100644
--- a/gtksourceview/gtksourceview.c
+++ b/gtksourceview/gtksourceview.c
@@ -3397,6 +3397,7 @@ gtk_source_view_indent_lines (GtkSourceView *view,
{
GtkTextBuffer *buf;
gboolean bracket_hl;
+ GtkTextMark *start_mark, *end_mark;
gint start_line, end_line;
gchar *tab_buffer = NULL;
guint tabs = 0;
@@ -3413,6 +3414,9 @@ gtk_source_view_indent_lines (GtkSourceView *view,
bracket_hl = gtk_source_buffer_get_highlight_matching_brackets (GTK_SOURCE_BUFFER (buf));
gtk_source_buffer_set_highlight_matching_brackets (GTK_SOURCE_BUFFER (buf), FALSE);
+ start_mark = gtk_text_buffer_create_mark (buf, NULL, start, FALSE);
+ end_mark = gtk_text_buffer_create_mark (buf, NULL, end, FALSE);
+
start_line = gtk_text_iter_get_line (start);
end_line = gtk_text_iter_get_line (end);
@@ -3512,6 +3516,13 @@ gtk_source_view_indent_lines (GtkSourceView *view,
gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW (view),
gtk_text_buffer_get_insert (buf));
+
+ /* revalidate iters */
+ gtk_text_buffer_get_iter_at_mark (buf, start, start_mark);
+ gtk_text_buffer_get_iter_at_mark (buf, end, end_mark);
+
+ gtk_text_buffer_delete_mark (buf, start_mark);
+ gtk_text_buffer_delete_mark (buf, end_mark);
}
/**
@@ -3532,6 +3543,7 @@ gtk_source_view_unindent_lines (GtkSourceView *view,
{
GtkTextBuffer *buf;
gboolean bracket_hl;
+ GtkTextMark *start_mark, *end_mark;
gint start_line, end_line;
gint tab_width;
gint indent_width;
@@ -3547,6 +3559,9 @@ gtk_source_view_unindent_lines (GtkSourceView *view,
bracket_hl = gtk_source_buffer_get_highlight_matching_brackets (GTK_SOURCE_BUFFER (buf));
gtk_source_buffer_set_highlight_matching_brackets (GTK_SOURCE_BUFFER (buf), FALSE);
+ start_mark = gtk_text_buffer_create_mark (buf, NULL, start, FALSE);
+ end_mark = gtk_text_buffer_create_mark (buf, NULL, end, FALSE);
+
start_line = gtk_text_iter_get_line (start);
end_line = gtk_text_iter_get_line (end);
@@ -3613,6 +3628,13 @@ gtk_source_view_unindent_lines (GtkSourceView *view,
gtk_text_view_scroll_mark_onscreen (GTK_TEXT_VIEW (view),
gtk_text_buffer_get_insert (buf));
+
+ /* revalidate iters */
+ gtk_text_buffer_get_iter_at_mark (buf, start, start_mark);
+ gtk_text_buffer_get_iter_at_mark (buf, end, end_mark);
+
+ gtk_text_buffer_delete_mark (buf, start_mark);
+ gtk_text_buffer_delete_mark (buf, end_mark);
}
static gint
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]