Line numbers are no longer selectable by default, easing copy+paste of code snippets.
authorAaron Taylor <ataylor@subgeniuskitty.com>
Thu, 17 Jun 2021 23:09:54 +0000 (16:09 -0700)
committerAaron Taylor <ataylor@subgeniuskitty.com>
Thu, 17 Jun 2021 23:09:54 +0000 (16:09 -0700)
gitweb.cgi
static/gitweb.css

index 56881e1..c24d40b 100755 (executable)
@@ -6411,9 +6411,9 @@ sub git_search_files {
                                $ltext = esc_html($ltext, -nbsp=>1);
                        }
                        print "<div class=\"pre\">" .
                                $ltext = esc_html($ltext, -nbsp=>1);
                        }
                        print "<div class=\"pre\">" .
-                               $cgi->a({-href => $file_href.'#l'.$lno,
-                                       -class => "linenr"}, sprintf('%4i', $lno)) .
-                               ' ' .  $ltext . "</div>\n";
+                               "<a href=\"" . $file_href.'#l'.$lno . "\" " .
+                               "class=\"linenr\" unselectable-linenr=\"" . sprintf('%4i', $lno) . " \">" .
+                               "</a>" .  $ltext . "</div>\n";
                }
        }
        if ($lastfile) {
                }
        }
        if ($lastfile) {
@@ -7208,7 +7208,7 @@ sub git_blob {
                        chomp $line;
                        $nr++;
                        $line = untabify($line);
                        chomp $line;
                        $nr++;
                        $line = untabify($line);
-                       printf qq!<div class="pre"><a id="l%i" href="%s#l%i" class="linenr">%4i</a> %s</div>\n!,
+                       printf qq!<div class="pre"><a id="l%i" href="%s#l%i" class="linenr" unselectable-linenr="%4i "></a>%s</div>\n!,
                               $nr, esc_attr(href(-replay => 1)), $nr, $nr,
                               $highlight ? sanitize($line) : esc_html($line, -nbsp=>1);
                }
                               $nr, esc_attr(href(-replay => 1)), $nr, $nr,
                               $highlight ? sanitize($line) : esc_html($line, -nbsp=>1);
                }
index 44ce42b..8e93114 100644 (file)
@@ -782,3 +782,9 @@ td.pre, div.pre, div.diff {
 .kwb    { color:#6b3099; }
 .kwc    { color:#d4663d; }
 .kwd { color:#2928ff; }
 .kwb    { color:#6b3099; }
 .kwc    { color:#d4663d; }
 .kwd { color:#2928ff; }
+
+/* Unselectable line numbers for easier copy+paste. */
+
+[unselectable-linenr]::before {
+  content: attr(unselectable-linenr);
+}