[gtksourceview/wip/search] search: emit GtkSourceBuffer::highlight-updated signal



commit c07c41236087ee7fea9c9345168fdc0ff653daf3
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Wed Jun 19 14:17:02 2013 +0200

    search: emit GtkSourceBuffer::highlight-updated signal

 gtksourceview/gtksourcesearch.c |   31 +++++++++++++++++++++++++++++--
 1 files changed, 29 insertions(+), 2 deletions(-)
---
diff --git a/gtksourceview/gtksourcesearch.c b/gtksourceview/gtksourcesearch.c
index 5fb4ef8..0185df5 100644
--- a/gtksourceview/gtksourcesearch.c
+++ b/gtksourceview/gtksourcesearch.c
@@ -136,6 +136,34 @@ clear_search (GtkSourceSearch *search)
 }
 
 static void
+add_subregion (GtkSourceSearch *search,
+              GtkTextIter     *start,
+              GtkTextIter     *end)
+{
+       if (search->priv->region == NULL)
+       {
+               return;
+       }
+
+       if (!gtk_text_iter_starts_line (start))
+       {
+               gtk_text_iter_set_line_offset (start, 0);
+       }
+
+       if (!gtk_text_iter_ends_line (end))
+       {
+               gtk_text_iter_forward_to_line_end (end);
+       }
+
+       gtk_text_region_add (search->priv->region, start, end);
+
+       gtk_text_iter_backward_lines (start, search->priv->text_nb_lines);
+       gtk_text_iter_forward_lines (end, search->priv->text_nb_lines);
+
+       g_signal_emit_by_name (search->priv->buffer, "highlight-updated", start, end);
+}
+
+static void
 update (GtkSourceSearch *search)
 {
        GtkTextIter start;
@@ -156,8 +184,7 @@ update (GtkSourceSearch *search)
        search->priv->region = gtk_text_region_new (search->priv->buffer);
 
        gtk_text_buffer_get_bounds (search->priv->buffer, &start, &end);
-
-       gtk_text_region_add (search->priv->region, &start, &end);
+       add_subregion (search, &start, &end);
 }
 
 static void


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