summaryrefslogtreecommitdiff
path: root/ref/book.js
diff options
context:
space:
mode:
Diffstat (limited to 'ref/book.js')
-rw-r--r--ref/book.js57
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();