diff options
Diffstat (limited to '')
-rw-r--r--source/ui-summary.c25
1 file changed, 19 insertions, 6 deletions
diff --git a/source/ui-summary.c b/source/ui-summary.c
index 005263a..f37650d 100644
--- a/source/ui-summary.c
+++ b/source/ui-summary.c
@@ -18,8 +18,7 @@
#include "ui-summary.h"
// Age, commit message and author, the three columns a log row always has.
-// ui-log.c adds one more for each of the two optional counts, and the rows
-// this page stretches across the table have to match that width.
+// ui-log.c adds one more for each of the two optional counts.
#define LOG_BASE_COLUMNS 3
static int clone_urls_printed;
@@ -35,9 +34,21 @@ static int log_columns(void)
return columns;
}
+/*
+ * The sections share one table, which is as wide as the widest of them, and
+ * every row fills it, since a short row would end its stripe short of the
+ * table's edge.
+ */
+static int table_columns(void)
+{
+ if (ctx.cfg.summary_log > 0 && log_columns() > REF_COLUMNS)
+ return log_columns();
+ return REF_COLUMNS;
+}
+
static void print_clone_url(const char *url)
{
- int columns = log_columns();
+ int columns = table_columns();
// cgit_add_clone_urls may call back no times at all, so the heading
// waits for a first url rather than being printed ahead of the walk.
@@ -52,14 +63,16 @@ static void print_clone_url(const char *url)
void cgit_print_summary(void)
{
+ int columns = table_columns();
+
cgit_print_layout_start();
// One table, so the columns line up across the sections, each of
// which is a body of its own.
html("<table class='list summary' aria-label='Summary'>\n");
- cgit_print_branches(ctx.cfg.summary_branches);
- cgit_print_tags(ctx.cfg.summary_tags);
+ cgit_print_branches(ctx.cfg.summary_branches, columns);
+ cgit_print_tags(ctx.cfg.summary_tags, columns);
if (ctx.cfg.summary_log > 0)
- cgit_print_log(ctx.qry.head, 0, ctx.cfg.summary_log, NULL, NULL, NULL, 0, 0, 0);
+ cgit_print_log(ctx.qry.head, 0, ctx.cfg.summary_log, NULL, NULL, NULL, 0, 0, 0, columns);
clone_urls_printed = 0;
cgit_add_clone_urls(print_clone_url);
if (clone_urls_printed)