summaryrefslogtreecommitdiffhomepage
path: root/common/disable-arrow-scroll.js
blob: 150e9d16c1d64b43dc38763bb3642c7e46888e3c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
window.addEventListener("DOMContentLoaded", () => {
  var clickedInCanvas = false;
  var warning = document.createElement("div");
  warning.innerHTML =
    "Arrow key scrolling disabled.<br />Click outside canvas or press Escape to enable again.";
  warning.style.padding = "1em";
  warning.style.color = "white";
  warning.style.backgroundColor = "red";
  warning.style.position = "fixed";
  warning.style.bottom = 0;
  warning.style.left = 0;
  warning.style.right = 0;
  warning.style.textAlign = "center";
  warning.id = "no-scroll-warning-20220323";
  warning.style.display = "none";
  warning.style.fontFamily =
    "grixel_acme_7_wide_xtnd, Courier New, Verdana, Arial";
  document.body.appendChild(warning);

  function update() {
    warning.style.display = clickedInCanvas ? "block" : "none";
  }

  window.addEventListener("click", (ev) => {
    clickedInCanvas = ev.target.tagName.toUpperCase() == "CANVAS";
    update();
  });
  window.addEventListener(
    "keydown",
    (ev) => {
      if (clickedInCanvas) {
        if (
          ["Space", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"].indexOf(
            ev.code
          ) > -1
        ) {
          ev.preventDefault();
        }
      }
      if (ev.code == "Escape") {
        clickedInCanvas = false;
        update();
      }
    },
    false
  );
});