about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--cgit.css10
-rw-r--r--ui-shared.c7
2 files changed, 17 insertions, 0 deletions
diff --git a/cgit.css b/cgit.css
index 67cf48e..80680c9 100644
--- a/cgit.css
+++ b/cgit.css
@@ -52,6 +52,7 @@ table.tabs {
 
 table.tabs td {
 	padding: 0px 0.5em;
+	vertical-align: bottom;
 }
 
 table.tabs td a {
@@ -64,6 +65,15 @@ table.tabs td a.active {
 	background-color: #ccc;
 }
 
+table.tabs td.branch {
+	text-align: right;
+}
+
+table.tabs td.branch form {
+	padding-bottom: 2px;
+	font-size: 90%;
+}
+
 div.content {
 	margin: 0px;
 	padding: 1em;
diff --git a/ui-shared.c b/ui-shared.c
index 03d147f..73e3d4c 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -518,6 +518,13 @@ void cgit_print_pageheader(struct cgit_context *ctx)
 			       ctx->qry.sha1, ctx->qry.sha2, NULL);
 		cgit_patch_link("patch", NULL, hc(cmd, "patch"), ctx->qry.head,
 				ctx->qry.sha1);
+		html("</td><td class='branch'>");
+		html("<form method='get' action=''>\n");
+		add_hidden_formfields(0, 1, ctx->qry.page);
+		html("<select name='h' onchange='this.form.submit();'>\n");
+		for_each_branch_ref(print_branch_option, ctx->qry.head);
+		html("</select> ");
+		html("<input type='submit' name='' value='switch'/>");
 	} else {
 		html("<a class='active' href='");
 		html_attr(cgit_rooturl());