Pārlūkot izejas kodu

Add dispose() method, which disconnects to remove observers.
Change .filter() to .some().

Brian Zinn 7 gadi atpakaļ
vecāks
revīzija
d81e9f5698
1 mainītis faili ar 12 papildinājumiem un 4 dzēšanām
  1. 12 4
      gui/src/2D/controls/virtualKeyboard.ts

+ 12 - 4
gui/src/2D/controls/virtualKeyboard.ts

@@ -172,10 +172,9 @@ export class VirtualKeyboard extends StackPanel {
      * @param input defines the target control
      */
     public connect(input: InputText): void {
-        // .find not available on IE
-        let filtered = this._connectedInputTexts.filter(a => a.input === input);
-        if (filtered.length === 1) {
-            return; // already connected
+        const inputTextAlreadyConnected = this._connectedInputTexts.some(a => a.input === input);
+        if (inputTextAlreadyConnected) {
+            return;
         }
 
         if (this._onKeyPressObserver === null) {
@@ -264,6 +263,15 @@ export class VirtualKeyboard extends StackPanel {
         connectedInputText.input.onBlurObservable.remove(connectedInputText.onBlurObserver);
     }
 
+    /**
+     * Release all resources
+     */
+    public dispose(): void {
+        super.dispose();
+
+        this.disconnect();
+    }
+
     // Statics
 
     /**