Selaa lähdekoodia

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

Brian Zinn 7 vuotta sitten
vanhempi
commit
d81e9f5698
1 muutettua tiedostoa jossa 12 lisäystä ja 4 poistoa
  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
 
     /**