diff options
author | Christian Hergert <chergert@redhat.com> | 2022-04-06 14:05:45 -0700 |
---|---|---|
committer | Christian Hergert <chergert@redhat.com> | 2022-04-21 13:06:22 -0700 |
commit | 67d6e60d7382cc3236825749b272e1dd7489bdf9 (patch) | |
tree | 82fcd5af950f71abcaa47cc61280476c00353de0 | |
parent | ff66045492e916fc171d142fb9c19ba4675a3eac (diff) | |
download | gtksourceview-67d6e60d7382cc3236825749b272e1dd7489bdf9.tar.gz |
gutterlines: add helper to check for any quark set
-rw-r--r-- | gtksourceview/gtksourcegutterlines.c | 23 | ||||
-rw-r--r-- | gtksourceview/gtksourcegutterlines.h | 3 |
2 files changed, 26 insertions, 0 deletions
diff --git a/gtksourceview/gtksourcegutterlines.c b/gtksourceview/gtksourcegutterlines.c index 327b8b89..364eb41b 100644 --- a/gtksourceview/gtksourcegutterlines.c +++ b/gtksourceview/gtksourcegutterlines.c @@ -634,3 +634,26 @@ _gtk_source_gutter_lines_get_cursor_line (GtkSourceGutterLines *lines) return lines->cursor_line; } + +/** + * gtk_source_gutter_lines_has_any_class: + * @lines: a #GtkSourceGutterLines + * @line: a line contained within @lines + * + * Checks to see if the line has any GQuark classes set. This can be + * used to help renderer implementations avoid work if nothing has + * been set on the class. + * + * Returns: %TRUE if any quark was set for the line + * + * Since: 5.6 + */ +gboolean +gtk_source_gutter_lines_has_any_class (GtkSourceGutterLines *lines, + guint line) +{ + if (lines == NULL || line < lines->first || line > lines->last || line - lines->first >= lines->lines->len) + return FALSE; + + return g_array_index (lines->lines, LineInfo, line - lines->first).classes.len > 0; +} diff --git a/gtksourceview/gtksourcegutterlines.h b/gtksourceview/gtksourcegutterlines.h index cbf8c50f..3ef43c99 100644 --- a/gtksourceview/gtksourcegutterlines.h +++ b/gtksourceview/gtksourcegutterlines.h @@ -86,5 +86,8 @@ void gtk_source_gutter_lines_get_line_yrange (GtkSourceGutterLines GtkSourceGutterRendererAlignmentMode mode, gint *y, gint *height); +GTK_SOURCE_AVAILABLE_IN_5_6 +gboolean gtk_source_gutter_lines_has_any_class (GtkSourceGutterLines *lines, + guint line); G_END_DECLS |