2b — Selection geometry (rows must NOT shift when selected)
+
+
+ no selection
+
+
+
Name
Size
+
+
aaa.txt
1 KB
+
bbb.txt
2 KB
+
ccc.txt
3 KB
+
ddd.txt
4 KB
+
+
+
+
+ middle row selected — baselines must still line up
+
+
+
Name
Size
+
+
aaa.txt
1 KB
+
bbb.txt
2 KB
+
ccc.txt
3 KB
+
ddd.txt
4 KB
+
+
+
+
+
3 — Context menu
diff --git a/ui/src/styles.css b/ui/src/styles.css
index 0fab48e..58a49c6 100644
--- a/ui/src/styles.css
+++ b/ui/src/styles.css
@@ -639,6 +639,21 @@ body {
border-color: var(--w7-li-bd-hl);
}
+ /* Constant row geometry. 7.css gives ONLY tr.highlighted a 1px border, and
+ the table is border-collapse: collapse — so a selected row physically grew
+ 1px at top and bottom and shoved every row below it down by 2px as the
+ cursor moved. Every row reserves that border instead, transparent when not
+ selected, so selecting changes colour and nothing else.
+ NOTE: this sits in `skinfix`, which outranks `skin` by LAYER regardless of
+ specificity, so it would also blank 7.css's highlight border — both
+ selected states therefore restate their border-color below. */
+ .win7 table > tbody > tr {
+ border: 1px solid transparent;
+ }
+ .win7 table > tbody > tr.highlighted {
+ border-color: var(--w7-li-bd-hl);
+ }
+
/* Pane-focus model (commander convention, matching Win7 Explorer):
the CURSOR ROW always carries the selection band in BOTH panels —
tr.highlighted covers "selected via Space" AND "cursor row" (the template