summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Hergert <chergert@redhat.com>2022-04-06 14:05:45 -0700
committerChristian Hergert <chergert@redhat.com>2022-04-21 13:06:22 -0700
commit67d6e60d7382cc3236825749b272e1dd7489bdf9 (patch)
tree82fcd5af950f71abcaa47cc61280476c00353de0
parentff66045492e916fc171d142fb9c19ba4675a3eac (diff)
downloadgtksourceview-67d6e60d7382cc3236825749b272e1dd7489bdf9.tar.gz
gutterlines: add helper to check for any quark set
-rw-r--r--gtksourceview/gtksourcegutterlines.c23
-rw-r--r--gtksourceview/gtksourcegutterlines.h3
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