js: Copy-to-clipboard support

Now using the browser's "copy" operation while the focus is in the
puzzle will copy the puzzle state to the clipboard.  Browsers seem to
have odd ideas about whate element to target with the "copy" event:
Firefox targets the parent of the <canvas> while Chromium targets the
<body>.  To cope with these and possible future weirdness I attach the
event handler to the document and then look to see if it's plausibly
related to the canvas.

Arguably we might want to handle a wider range of "copy" events, maybe
any where the selection isn't empty.  I'm not sure, though, so we'll
start with the minimal change.
This commit is contained in:
Ben Harris
2023-07-05 19:39:57 +01:00
parent c8cc4a5f38
commit ad7042db98
3 changed files with 35 additions and 0 deletions

View File

@ -35,6 +35,9 @@ set(emcc_export_list
_timer_callback
# Callback from button presses in the UI outside the canvas
_command
# Text-formatting for copying to clipboard
_get_text_format
_free_text_format
# Game-saving and game-loading functions
_get_save_file
_free_save_file