Fossil SCM

For the show/hide diff checkboxes, invisibly extend the corresponding LABEL element such that tapping any of the empty space to the left of the checkbox toggles it. This doesn't change the appearance but extends the click zone considerably on wide displays.

stephan 2025-02-11 17:57 trunk
Commit 6bc8c5f8829a8b7925b3aa91ec8ef8d4ae3be654716613fb328141da190541e6
1 file changed +4 -2
--- src/fossil.diff.js
+++ src/fossil.diff.js
@@ -45,14 +45,16 @@
4545
const sib = diffElem.previousElementSibling,
4646
ckbox = sib ? D.addClass(D.checkbox(true), 'diff-toggle') : 0;
4747
if(!sib) return;
4848
const lblToggle = D.label();
4949
D.append(lblToggle, ckbox, D.text(" show/hide "));
50
- const wrapper = D.append(D.span(), lblToggle);
5150
allToggles.push(ckbox);
5251
++checkedCount;
53
- D.append(sib, D.append(wrapper, lblToggle));
52
+ /* Make all of the available empty space a click zone for the checkbox */
53
+ lblToggle.style.flexGrow = 1;
54
+ lblToggle.style.textAlign = 'right';
55
+ D.append(sib, lblToggle);
5456
ckbox.addEventListener('change', function(){
5557
diffElem.classList[this.checked ? 'remove' : 'add']('hidden');
5658
if(btnAll){
5759
checkedCount += (this.checked ? 1 : -1);
5860
btnAll.innerText = (checkedCount < allToggles.length)
5961
--- src/fossil.diff.js
+++ src/fossil.diff.js
@@ -45,14 +45,16 @@
45 const sib = diffElem.previousElementSibling,
46 ckbox = sib ? D.addClass(D.checkbox(true), 'diff-toggle') : 0;
47 if(!sib) return;
48 const lblToggle = D.label();
49 D.append(lblToggle, ckbox, D.text(" show/hide "));
50 const wrapper = D.append(D.span(), lblToggle);
51 allToggles.push(ckbox);
52 ++checkedCount;
53 D.append(sib, D.append(wrapper, lblToggle));
 
 
 
54 ckbox.addEventListener('change', function(){
55 diffElem.classList[this.checked ? 'remove' : 'add']('hidden');
56 if(btnAll){
57 checkedCount += (this.checked ? 1 : -1);
58 btnAll.innerText = (checkedCount < allToggles.length)
59
--- src/fossil.diff.js
+++ src/fossil.diff.js
@@ -45,14 +45,16 @@
45 const sib = diffElem.previousElementSibling,
46 ckbox = sib ? D.addClass(D.checkbox(true), 'diff-toggle') : 0;
47 if(!sib) return;
48 const lblToggle = D.label();
49 D.append(lblToggle, ckbox, D.text(" show/hide "));
 
50 allToggles.push(ckbox);
51 ++checkedCount;
52 /* Make all of the available empty space a click zone for the checkbox */
53 lblToggle.style.flexGrow = 1;
54 lblToggle.style.textAlign = 'right';
55 D.append(sib, lblToggle);
56 ckbox.addEventListener('change', function(){
57 diffElem.classList[this.checked ? 'remove' : 'add']('hidden');
58 if(btnAll){
59 checkedCount += (this.checked ? 1 : -1);
60 btnAll.innerText = (checkedCount < allToggles.length)
61

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button