[gtk/wip/chergert/textview-caching: 3/4] textiter: add _gtk_text_iter_same_line()



commit dcb81155dba9ce276a91574534512d1edc7cef86
Author: Christian Hergert <chergert redhat com>
Date:   Fri Jul 26 18:04:34 2019 -0700

    textiter: add _gtk_text_iter_same_line()
    
    This is a faster form to compare two text iter to see if they are on the
    same line.

 gtk/gtktextiter.c        | 19 +++++++++++++++++++
 gtk/gtktextiterprivate.h |  2 ++
 2 files changed, 21 insertions(+)
---
diff --git a/gtk/gtktextiter.c b/gtk/gtktextiter.c
index be31d084d0..357b31a8a7 100644
--- a/gtk/gtktextiter.c
+++ b/gtk/gtktextiter.c
@@ -5358,6 +5358,25 @@ gtk_text_iter_equal (const GtkTextIter *lhs,
     }
 }
 
+gboolean
+_gtk_text_iter_same_line (const GtkTextIter *lhs,
+                          const GtkTextIter *rhs)
+{
+  GtkTextRealIter *real_lhs;
+  GtkTextRealIter *real_rhs;
+
+  real_lhs = gtk_text_iter_make_surreal (lhs);
+  real_rhs = gtk_text_iter_make_surreal (rhs);
+
+  if (real_lhs == NULL || real_rhs == NULL)
+    return FALSE;
+
+  check_invariants (lhs);
+  check_invariants (rhs);
+
+  return real_lhs->line == real_rhs->line;
+}
+
 /**
  * gtk_text_iter_compare:
  * @lhs: a #GtkTextIter
diff --git a/gtk/gtktextiterprivate.h b/gtk/gtktextiterprivate.h
index 4fdf772c86..8db3f56b93 100644
--- a/gtk/gtktextiterprivate.h
+++ b/gtk/gtktextiterprivate.h
@@ -41,6 +41,8 @@ gboolean            _gtk_text_iter_forward_indexable_segment  (GtkTextIter
 gboolean            _gtk_text_iter_backward_indexable_segment (GtkTextIter       *iter);
 gint                _gtk_text_iter_get_segment_byte           (const GtkTextIter *iter);
 gint                _gtk_text_iter_get_segment_char           (const GtkTextIter *iter);
+gboolean            _gtk_text_iter_same_line                  (const GtkTextIter *lhs,
+                                                               const GtkTextIter *rhs);
 
 gboolean       gtk_text_iter_get_attributes (const GtkTextIter *iter,
                                              GtkTextAttributes *values);


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