diff options
Diffstat (limited to 'ref/book.js')
| -rw-r--r-- | ref/book.js | 57 |
1 files changed, 53 insertions, 4 deletions
diff --git a/ref/book.js b/ref/book.js index 160ee937..5df2096f 100644 --- a/ref/book.js +++ b/ref/book.js @@ -557,9 +557,9 @@ aria-label="Show hidden lines"></button>'; sidebarToggleAnchor.addEventListener('change', function sidebarToggle() { if (sidebarToggleAnchor.checked) { const current_width = parseInt( - document.documentElement.style.getPropertyValue('--sidebar-width'), 10); + document.documentElement.style.getPropertyValue('--sidebar-target-width'), 10); if (current_width < 150) { - document.documentElement.style.setProperty('--sidebar-width', '150px'); + document.documentElement.style.setProperty('--sidebar-target-width', '150px'); } showSidebar(); } else { @@ -583,7 +583,7 @@ aria-label="Show hidden lines"></button>'; showSidebar(); } pos = Math.min(pos, window.innerWidth - 100); - document.documentElement.style.setProperty('--sidebar-width', pos + 'px'); + document.documentElement.style.setProperty('--sidebar-target-width', pos + 'px'); } } //on mouseup remove windows functions mousemove & mouseup @@ -623,7 +623,7 @@ aria-label="Show hidden lines"></button>'; (function chapterNavigation() { document.addEventListener('keydown', function(e) { - if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) { + if (e.altKey || e.ctrlKey || e.metaKey) { return; } if (window.search && window.search.hasFocus()) { @@ -643,6 +643,55 @@ aria-label="Show hidden lines"></button>'; window.location.href = previousButton.href; } } + function showHelp() { + const container = document.getElementById('mdbook-help-container'); + const overlay = document.getElementById('mdbook-help-popup'); + container.style.display = 'flex'; + + // Clicking outside the popup will dismiss it. + const mouseHandler = event => { + if (overlay.contains(event.target)) { + return; + } + if (event.button !== 0) { + return; + } + event.preventDefault(); + event.stopPropagation(); + document.removeEventListener('mousedown', mouseHandler); + hideHelp(); + }; + + // Pressing esc will dismiss the popup. + const escapeKeyHandler = event => { + if (event.key === 'Escape') { + event.preventDefault(); + event.stopPropagation(); + document.removeEventListener('keydown', escapeKeyHandler, true); + hideHelp(); + } + }; + document.addEventListener('keydown', escapeKeyHandler, true); + document.getElementById('mdbook-help-container') + .addEventListener('mousedown', mouseHandler); + } + function hideHelp() { + document.getElementById('mdbook-help-container').style.display = 'none'; + } + + // Usually needs the Shift key to be pressed + switch (e.key) { + case '?': + e.preventDefault(); + showHelp(); + break; + } + + // Rest of the keys are only active when the Shift key is not pressed + if (e.shiftKey) { + return; + } + switch (e.key) { case 'ArrowRight': e.preventDefault(); |
