Patchwork [1,of,2,V2] hgweb: make followlines button absolutely positioned

login
register
mail settings
Submitter Anton Shestakov
Date April 8, 2018, 3:14 p.m.
Message ID <41826e0ae22d24a04cc1.1523200441@neuro>
Download mbox | patch
Permalink /patch/30566/
State Superseded
Headers show

Comments

Anton Shestakov - April 8, 2018, 3:14 p.m.
# HG changeset patch
# User Anton Shestakov <av6@dwimlabs.net>
# Date 1523191987 -28800
#      Sun Apr 08 20:53:07 2018 +0800
# Node ID 41826e0ae22d24a04cc1f4b911a56b787635fa6e
# Parent  0a1fb171dc1ddd6a1cd1a5666e92299db12e9f5d
hgweb: make followlines button absolutely positioned

It used to have position: absolute only on annotate page, but it makes sense to
have it everywhere, because the button shouldn't affect other elements at all.
Especially since the button has a set height, which meant that for certain
smaller fonts source lines were changing their height on hover.

Note that the button doesn't set any of the usual properties that accompany
absolute position (top, right, bottom or left). These properties would position
the button without any account for source line padding. Instead, margins are
used (the button already has all margins defined, they do the job).
Yuya Nishihara - April 9, 2018, 12:55 p.m.
On Sun, 08 Apr 2018 23:14:01 +0800, Anton Shestakov wrote:
> # HG changeset patch
> # User Anton Shestakov <av6@dwimlabs.net>
> # Date 1523191987 -28800
> #      Sun Apr 08 20:53:07 2018 +0800
> # Node ID 41826e0ae22d24a04cc1f4b911a56b787635fa6e
> # Parent  0a1fb171dc1ddd6a1cd1a5666e92299db12e9f5d
> hgweb: make followlines button absolutely positioned
> 
> It used to have position: absolute only on annotate page, but it makes sense to
> have it everywhere, because the button shouldn't affect other elements at all.
> Especially since the button has a set height, which meant that for certain
> smaller fonts source lines were changing their height on hover.
> 
> Note that the button doesn't set any of the usual properties that accompany
> absolute position (top, right, bottom or left). These properties would position
> the button without any account for source line padding. Instead, margins are
> used (the button already has all margins defined, they do the job).

In file view, it appears that the button is placed relative to the line ending
because the button is inserted *after* the line text.

Patch

diff --git a/mercurial/templates/static/style-gitweb.css b/mercurial/templates/static/style-gitweb.css
--- a/mercurial/templates/static/style-gitweb.css
+++ b/mercurial/templates/static/style-gitweb.css
@@ -232,6 +232,7 @@  div.followlines-link {
 }
 
 .btn-followlines {
+  position: absolute;
   display: none;
   cursor: pointer;
   box-sizing: content-box;
@@ -249,14 +250,6 @@  div.followlines-link {
   line-height: 5px;
 }
 
-tr .btn-followlines {
-  position: absolute;
-}
-
-span .btn-followlines {
-  float: left;
-}
-
 span.followlines-select .btn-followlines {
   margin-left: -1.6em;
 }
diff --git a/mercurial/templates/static/style-paper.css b/mercurial/templates/static/style-paper.css
--- a/mercurial/templates/static/style-paper.css
+++ b/mercurial/templates/static/style-paper.css
@@ -350,6 +350,7 @@  div.followlines-link {
 }
 
 .btn-followlines {
+  position: absolute;
   display: none;
   cursor: pointer;
   box-sizing: content-box;
@@ -367,14 +368,6 @@  div.followlines-link {
   line-height: 5px;
 }
 
-tr .btn-followlines {
-  position: absolute;
-}
-
-span .btn-followlines {
-  float: left;
-}
-
 span.followlines-select .btn-followlines {
   margin-left: -1.5em;
 }
diff --git a/tests/test-hgweb.t b/tests/test-hgweb.t
--- a/tests/test-hgweb.t
+++ b/tests/test-hgweb.t
@@ -340,7 +340,7 @@  static file
 
   $ get-with-headers.py --twice localhost:$HGPORT 'static/style-gitweb.css' - date etag server
   200 Script output follows
-  content-length: 9126
+  content-length: 9059
   content-type: text/css
   
   body { font-family: sans-serif; font-size: 12px; border:solid #d9d8d1; border-width:1px; margin:10px; background: white; color: black; }
@@ -577,6 +577,7 @@  static file
   }
   
   .btn-followlines {
+    position: absolute;
     display: none;
     cursor: pointer;
     box-sizing: content-box;
@@ -594,14 +595,6 @@  static file
     line-height: 5px;
   }
   
-  tr .btn-followlines {
-    position: absolute;
-  }
-  
-  span .btn-followlines {
-    float: left;
-  }
-  
   span.followlines-select .btn-followlines {
     margin-left: -1.6em;
   }