mirror of
https://github.com/ankitects/anki.git
synced 2026-01-07 02:53:54 -05:00
Fix: Inner iframe clicks doesn't close menu
This commit is contained in:
parent
ba540bb516
commit
f8629bf148
4 changed files with 33 additions and 11 deletions
|
|
@ -132,6 +132,10 @@ addEventListener("keydown", (e) => {
|
|||
}
|
||||
});
|
||||
|
||||
addEventListener("click", () => {
|
||||
postParentMessage({ type: "closemenu" });
|
||||
});
|
||||
|
||||
const base = document.createElement("base");
|
||||
base.href = "/media/";
|
||||
document.head.appendChild(base);
|
||||
|
|
|
|||
|
|
@ -5,22 +5,27 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|||
<script lang="ts">
|
||||
import Popover from "$lib/components/Popover.svelte";
|
||||
import WithFloating from "$lib/components/WithFloating.svelte";
|
||||
import { onMount } from "svelte";
|
||||
|
||||
export let showFloating = false;
|
||||
export let lockOpen = false;
|
||||
|
||||
function close() {
|
||||
if (!lockOpen) {
|
||||
showFloating = false;
|
||||
}
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
document.addEventListener("closemenu", () => close());
|
||||
return () => {
|
||||
document.removeEventListener("closemenu", close);
|
||||
};
|
||||
});
|
||||
</script>
|
||||
|
||||
<div>
|
||||
<WithFloating
|
||||
show={showFloating}
|
||||
inline
|
||||
on:close={() => {
|
||||
if (!lockOpen) {
|
||||
showFloating = false;
|
||||
}
|
||||
}}
|
||||
closeOnInsideClick
|
||||
>
|
||||
<WithFloating show={showFloating} inline on:close={close}>
|
||||
<slot slot="reference" name="button"></slot>
|
||||
|
||||
<Popover slot="floating">
|
||||
|
|
|
|||
|
|
@ -119,6 +119,10 @@ export class ReviewerState {
|
|||
document.dispatchEvent(new KeyboardEvent(forceKeyUp ? "keyup" : "keydown", e.data.eventInit));
|
||||
break;
|
||||
}
|
||||
case "closemenu": {
|
||||
document.dispatchEvent(new CustomEvent("closemenu"));
|
||||
break;
|
||||
}
|
||||
case "setstorage": {
|
||||
setConfigJson({
|
||||
key: "reviewerStorage",
|
||||
|
|
|
|||
|
|
@ -16,9 +16,18 @@ interface KeyPressMessage {
|
|||
eventInit: KeyboardEventInit;
|
||||
}
|
||||
|
||||
interface CloseMenuMessage {
|
||||
type: "closemenu";
|
||||
}
|
||||
|
||||
interface SetStorageMessage {
|
||||
type: "setstorage";
|
||||
json_buffer: Uint8Array;
|
||||
}
|
||||
|
||||
export type ReviewerRequest = AudioMessage | UpdateTypedAnswerMessage | KeyPressMessage | SetStorageMessage;
|
||||
export type ReviewerRequest =
|
||||
| AudioMessage
|
||||
| UpdateTypedAnswerMessage
|
||||
| KeyPressMessage
|
||||
| SetStorageMessage
|
||||
| CloseMenuMessage;
|
||||
|
|
|
|||
Loading…
Reference in a new issue