[PATCH v2] blame: css: make blame highlight div absolute and top left

Andy Green andy at warmcat.com
Mon Jun 18 08:02:54 CEST 2018

Normal operation of blame view requires div.highlight to
have absolute position and set to its parent's top left
for me.

Otherwise the grey background boxes indicating the extent of
the patch in the lines td displace the highlit sources, they
start at the bottom of the td.

This patch makes the blame highlight div start back up the top of
its parent area and render on top of the grey boxes.

Checked on Linux Firefox 60 and Linux Chrome 69.

"highlight" div class name is also used in md2html rendering
output.  So this patch solves it by introducing a wrapper
div and new "blame_highlight" css class.

Signed-off-by: Andy Green <andy at warmcat.com>
 cgit.css   |    2 ++
 ui-blame.c |    4 ++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/cgit.css b/cgit.css
index da8d9b0..5a85ceb 100644
--- a/cgit.css
+++ b/cgit.css
@@ -162,6 +162,8 @@ div#cgit table.list tr.nohover-highlight:hover:nth-child(odd) {
 	background: white;
+div#cgit div.blame_highlight { position: absolute; top: 0; left: 0; }
 div#cgit table.list th {
 	font-weight: bold;
 	/* color: #888;
diff --git a/ui-blame.c b/ui-blame.c
index 6e23f0b..ab44e3f 100644
--- a/ui-blame.c
+++ b/ui-blame.c
@@ -196,7 +196,7 @@ static void print_object(const struct object_id *oid, const char *path,
 	free((void *)sb.final_buf);
 	/* Lines */
-	html("<pre><code>");
+	html("<div class=\"blame_highlight\"> <pre><code>");
 	if (ctx.repo->source_filter) {
 		char *filter_arg = xstrdup(basename);
 		cgit_open_filter(ctx.repo->source_filter, filter_arg);
@@ -207,7 +207,7 @@ static void print_object(const struct object_id *oid, const char *path,
-	html("</code></pre>");
+	html("</code></pre></div>");

More information about the CGit mailing list