• Robert Knight's avatar
    Install shortcut listener on document element · d9de7bde
    Robert Knight authored
    Listen for key events for keyboard shortcuts on the document element rather than
    body element, to make them work in XHTML documents.
    
    When no interactive element (eg. an input field) is focused in an HTML document,
    keyboard events are sent to the body element. In an XHTML document however
    keyboard events are sent to the document element instead in Safari and Chrome
    (in Firefox they are still sent to the body). The key event listeners used for
    the adder's shortcuts were installed on the body element, so they didn't work in
    XHTML documents in Safari and Chrome.
    
    My guess is that the reason for this behavioral quirk is that HTML documents are
    guaranteed to have a body element - an empty one will be generated if none
    is present in the markup, whereas XHTML documents are not.
    
    Fixes https://github.com/hypothesis/client/issues/4364
    d9de7bde
Name
Last commit
Last update
.github Loading commit data...
bin Loading commit data...
dev-server Loading commit data...
docs Loading commit data...
embedding-examples Loading commit data...
images Loading commit data...
requirements Loading commit data...
scripts Loading commit data...
src Loading commit data...
.babelrc Loading commit data...
.dockerignore Loading commit data...
.eslintignore Loading commit data...
.eslintrc Loading commit data...
.gitignore Loading commit data...
.npmignore Loading commit data...
.npmrc Loading commit data...
.prettierignore Loading commit data...
.python-version Loading commit data...
CODE_OF_CONDUCT Loading commit data...
Dockerfile Loading commit data...
Jenkinsfile Loading commit data...
LICENSE Loading commit data...
Makefile Loading commit data...
README.md Loading commit data...
codecov.yml Loading commit data...
gulpfile.mjs Loading commit data...
package.json Loading commit data...
pyproject.toml Loading commit data...
requirements-dev.in Loading commit data...
rollup-boot.config.mjs Loading commit data...
rollup-tests.config.mjs Loading commit data...
rollup.config.mjs Loading commit data...
tailwind.config.mjs Loading commit data...
tox.ini Loading commit data...
tsconfig.json Loading commit data...
yarn.lock Loading commit data...