]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
Add null check when mouse coords are bad
authorDaniel Imms <daimms@microsoft.com>
Wed, 19 Jul 2017 03:33:54 +0000 (20:33 -0700)
committerDaniel Imms <daimms@microsoft.com>
Wed, 19 Jul 2017 03:34:24 +0000 (20:34 -0700)
This happens if the viewport is bad (which was fixed in another commit).

Fixes #801

src/SelectionManager.ts

index 5a86a2b9cf6539d5777d8f3a52fcdc071ea85601..78494ae19304c195e0770a412de889a1eeec1433 100644 (file)
@@ -522,6 +522,10 @@ export class SelectionManager extends EventEmitter {
    */
   private _getWordAt(coords: [number, number]): IWordPosition {
     const bufferLine = this._buffer.get(coords[1]);
+    if (!bufferLine) {
+      return null;
+    }
+
     const line = translateBufferLineToString(bufferLine, false);
 
     // Get actual index, taking into consideration wide characters
@@ -590,8 +594,10 @@ export class SelectionManager extends EventEmitter {
    */
   protected _selectWordAt(coords: [number, number]): void {
     const wordPosition = this._getWordAt(coords);
-    this._model.selectionStart = [wordPosition.start, coords[1]];
-    this._model.selectionStartLength = wordPosition.length;
+    if (wordPosition) {
+      this._model.selectionStart = [wordPosition.start, coords[1]];
+      this._model.selectionStartLength = wordPosition.length;
+    }
   }
 
   /**
@@ -600,7 +606,9 @@ export class SelectionManager extends EventEmitter {
    */
   private _selectToWordAt(coords: [number, number]): void {
     const wordPosition = this._getWordAt(coords);
-    this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : (wordPosition.start + wordPosition.length), coords[1]];
+    if (wordPosition) {
+      this._model.selectionEnd = [this._model.areSelectionValuesReversed() ? wordPosition.start : (wordPosition.start + wordPosition.length), coords[1]];
+    }
   }
 
   /**