diff --git a/src/inject/player/auto-full-screen.ts b/src/inject/player/auto-full-screen.ts index 1de659d..6bdde34 100644 --- a/src/inject/player/auto-full-screen.ts +++ b/src/inject/player/auto-full-screen.ts @@ -19,12 +19,7 @@ export class AutoFullScreen extends BaseModel { private async init() { await this.subscribeToPreference(FULL_SCREEN.key, FULL_SCREEN.default, this.setPermition); await this.subscribeToPreference(AUTO_PLAY_VIDEO.key, AUTO_PLAY_VIDEO.default, this.setAutoPlayPermition); - await this.subscribeToPreference(NEXT_EPISODE_LAST_TRIGGER_TIME.key, NEXT_EPISODE_LAST_TRIGGER_TIME.default, (lastTriggerTime) => { - // @ts-ignore - if (lastTriggerTime && (new Date() - new Date(lastTriggerTime)) < TOLERATE_AUTO_FULL_SCREEN_IN_MS) { - this.nextEpisodeLastTriggerTimeFitsTime = true; - } - }); + await this.subscribeToPreference(NEXT_EPISODE_LAST_TRIGGER_TIME.key, NEXT_EPISODE_LAST_TRIGGER_TIME.default, this.handleLastTriggerTime); this.onDomAdd(this.validate, this.action); } @@ -37,6 +32,13 @@ export class AutoFullScreen extends BaseModel { this.autoPlayPermitted = permission; } + private handleLastTriggerTime = (lastTriggerTime) => { + // @ts-ignore + if (lastTriggerTime && (new Date() - new Date(lastTriggerTime)) < TOLERATE_AUTO_FULL_SCREEN_IN_MS) { + this.nextEpisodeLastTriggerTimeFitsTime = true; + } + } + private validate = (element: T) => { return ( this.permitted @@ -53,8 +55,14 @@ export class AutoFullScreen extends BaseModel { const bodyElement = document.querySelector("body"); bodyElement.classList.add(CSS_FULL_SCREEN_CLASS); + document.addEventListener("mousedown", this.exitCssFullScreen); - document.addEventListener("keyup", this.exitCssFullScreen); + document.addEventListener("keyup", (e) => { + // F11's keycode = 122 + if (e.keyCode !== 122) { + this.exitCssFullScreen(); + } + }); } private exitCssFullScreen = () => {