]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
Have Terminal.hasSelection return false when no selection
authorDaniel Imms <daimms@microsoft.com>
Tue, 20 Jun 2017 17:38:33 +0000 (10:38 -0700)
committerDaniel Imms <daimms@microsoft.com>
Tue, 20 Jun 2017 17:38:33 +0000 (10:38 -0700)
Fixes #724

src/SelectionManager.test.ts
src/SelectionManager.ts

index eb9322b6c0168bcf993d505f4e5825ca5de44999..dcc9cb5a9cf80074912da81029bb7f7fd0d97638 100644 (file)
@@ -209,4 +209,20 @@ describe('SelectionManager', () => {
       assert.equal(selectionManager.selectionText, '1\n2\n3\n4\n5');
     });
   });
+
+  describe('hasSelection', () => {
+    it('should return whether there is a selection', () => {
+      selectionManager.model.selectionStart = [0, 0];
+      selectionManager.model.selectionStartLength = 0;
+      assert.equal(selectionManager.hasSelection, false);
+      selectionManager.model.selectionEnd = [0, 0];
+      assert.equal(selectionManager.hasSelection, false);
+      selectionManager.model.selectionEnd = [1, 0];
+      assert.equal(selectionManager.hasSelection, true);
+      selectionManager.model.selectionEnd = [0, 1];
+      assert.equal(selectionManager.hasSelection, true);
+      selectionManager.model.selectionEnd = [1, 1];
+      assert.equal(selectionManager.hasSelection, true);
+    });
+  });
 });
index a769afd113c79a504fdfdab13005d4d95c939579..0937f0af8cb90c7f22caa58dec378960356ad61b 100644 (file)
@@ -183,7 +183,12 @@ export class SelectionManager extends EventEmitter {
    * Gets whether there is an active text selection.
    */
   public get hasSelection(): boolean {
-    return !!this._model.finalSelectionStart && !!this._model.finalSelectionEnd;
+    const start = this._model.finalSelectionStart;
+    const end = this._model.finalSelectionEnd;
+    if (!start || !end) {
+      return false;
+    }
+    return start[0] !== end[0] || start[1] !== end[1];
   }
 
   /**