Skip to content

Commit 26ac724

Browse files
committed
Disable Reveal shortcuts when drop is active
1 parent 028c487 commit 26ac724

File tree

4 files changed

+71
-41
lines changed

4 files changed

+71
-41
lines changed

_extensions/drop/drop-runtime.js

Lines changed: 40 additions & 35 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

drop-runtime/package-lock.json

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

drop-runtime/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"@lezer/python": "^1.1.14",
2525
"codemirror": "^6.0.1",
2626
"codemirror-lang-r": "^0.1.0-2",
27+
"keycode": "^2.2.1",
2728
"lezer-r": "^0.1.1",
2829
"xterm": "^5.3.0"
2930
}

drop-runtime/src/drop-runtime.ts

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
11
import "./drop-runtime.css";
2+
import keycode from 'keycode';
23
import { startWebRApp, startPyodideApp } from './App';
34

45
declare global {
56
interface Window {
67
Reveal: any;
7-
RevealDrop?: any;
8+
RevealDrop?: {
9+
id: string;
10+
dropElement: HTMLDivElement;
11+
init: (reveal: any) => void;
12+
toggleDrop: () => void;
13+
isActive: () => boolean;
14+
};
815
}
916
}
1017

@@ -27,11 +34,9 @@ type DropConfig = {
2734
window.RevealDrop = window.RevealDrop || {
2835
id: 'RevealDrop',
2936
dropElement: document.createElement('div'),
30-
config: {},
31-
init: function() {
32-
// Configuration
33-
const config = window.Reveal.getConfig().drop as DropConfig;
34-
window.RevealDrop.config = config;
37+
init: function (reveal) {
38+
const revealConfig = reveal.getConfig();
39+
const config = revealConfig.drop as DropConfig;
3540

3641
// Add Drop down panel to DOM
3742
const drop = window.RevealDrop.dropElement;
@@ -67,15 +72,28 @@ window.RevealDrop = window.RevealDrop || {
6772
}
6873

6974
// Keyboard listeners
75+
reveal.addKeyBinding({
76+
keyCode: keycode(config.shortcut),
77+
key: config.shortcut,
78+
description: 'Toggle console'
79+
}, () => {});
80+
7081
document.addEventListener("keydown", (event) => {
7182
if (event.key == config.shortcut && !event.altKey) {
7283
window.RevealDrop.toggleDrop();
84+
reveal.toggleHelp(false);
85+
reveal.toggleOverview(false);
86+
reveal.configure({ keyboard: !window.RevealDrop.isActive() });
7387
event.preventDefault();
7488
event.stopPropagation();
7589
}
7690
}, { capture: true });
91+
7792
},
7893
toggleDrop() {
7994
window.RevealDrop.dropElement.classList.toggle("active");
95+
},
96+
isActive() {
97+
return window.RevealDrop.dropElement.classList.contains("active");
8098
}
8199
};

0 commit comments

Comments
 (0)