diff options
author | Christian Hergert <chergert@redhat.com> | 2019-07-26 18:04:34 -0700 |
---|---|---|
committer | Christian Hergert <chergert@redhat.com> | 2019-07-28 10:34:15 -0700 |
commit | b930c5a8a2545a8534585ae92f2d25a9581d345d (patch) | |
tree | de8c8d271c0317f3917f470a8c31d92cd0e20948 /gtk | |
parent | 7eb5dfd2947c8e8de0957f4339af66b47811f2c7 (diff) | |
download | gtk+-b930c5a8a2545a8534585ae92f2d25a9581d345d.tar.gz |
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.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtktextiter.c | 19 | ||||
-rw-r--r-- | gtk/gtktextiterprivate.h | 2 |
2 files changed, 21 insertions, 0 deletions
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); |