diff options
Diffstat (limited to 'ext/mixed/js')
| -rw-r--r-- | ext/mixed/js/dom.js | 18 | ||||
| -rw-r--r-- | ext/mixed/js/text-scanner.js | 8 | 
2 files changed, 25 insertions, 1 deletions
| diff --git a/ext/mixed/js/dom.js b/ext/mixed/js/dom.js index 05764443..59fea9f6 100644 --- a/ext/mixed/js/dom.js +++ b/ext/mixed/js/dom.js @@ -77,6 +77,24 @@ class DOM {          return (typeof key === 'string' ? (key.length === 1 ? key.toUpperCase() : key) : '');      } +    static addFullscreenChangeEventListener(onFullscreenChanged, eventListenerCollection=null) { +        const target = document; +        const options = false; +        const fullscreenEventNames = [ +            'fullscreenchange', +            'MSFullscreenChange', +            'mozfullscreenchange', +            'webkitfullscreenchange' +        ]; +        for (const eventName of fullscreenEventNames) { +            if (eventListenerCollection === null) { +                target.addEventListener(eventName, onFullscreenChanged, options); +            } else { +                eventListenerCollection.addEventListener(target, eventName, onFullscreenChanged, options); +            } +        } +    } +      static getFullscreenElement() {          return (              document.fullscreenElement || diff --git a/ext/mixed/js/text-scanner.js b/ext/mixed/js/text-scanner.js index fb275452..7c705fc8 100644 --- a/ext/mixed/js/text-scanner.js +++ b/ext/mixed/js/text-scanner.js @@ -28,6 +28,7 @@ class TextScanner extends EventDispatcher {          this._ignorePoint = ignorePoint;          this._search = search; +        this._isPrepared = false;          this._ignoreNodes = null;          this._causeCurrent = null; @@ -69,10 +70,15 @@ class TextScanner extends EventDispatcher {          return this._causeCurrent;      } +    prepare() { +        this._isPrepared = true; +        this.setEnabled(this._enabled); +    } +      setEnabled(enabled) {          this._eventListeners.removeAllEventListeners();          this._enabled = enabled; -        if (this._enabled) { +        if (this._enabled && this._isPrepared) {              this._hookEvents();          } else {              this.clearSelection(true); |