]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
pointless
authorParis <paris@sourcelair.com>
Fri, 8 Apr 2016 15:10:27 +0000 (18:10 +0300)
committerParis <paris@sourcelair.com>
Fri, 8 Apr 2016 15:10:27 +0000 (18:10 +0300)
demo/main.js
src/xterm.js

index d9bc9284fe218bd6ee2850e8083de036fc1199d7..263ba1686b27a41694e5647b0bc62459968e8278 100644 (file)
@@ -15,7 +15,9 @@ term.writeln('');
 term.prompt();
 
 term.on('key', function (key, ev) {
-  var printable = (!ev.altKey && !ev.altGraphKey && !ev.ctrlKey && !ev.metaKey);
+  var printable = (
+    !ev.altKey && !ev.altGraphKey && !ev.ctrlKey && !ev.metaKey
+  );
 
   if (ev.keyCode == 13) {
     term.prompt();
index c9fec907d9e8c32aaf6079b0c2678fee2c375177..fd9d03a42aadb043d32e9419d989edb4eae91144 100644 (file)
     };
 
     EventEmitter.prototype.once = function(type, listener) {
+      var self = this;
       function on() {
         var args = Array.prototype.slice.call(arguments);
-        this.removeListener(type, on);
-        return listener.apply(this, args);
+        self.removeListener(type, on);
+        return listener.apply(self, args);
       }
       on.listener = listener;
       return this.on(type, on);
           var text = ev.clipboardData.getData('text/plain');
           term.handler(text);
         }
-        return term.cancel(ev, true);
       });
     };
 
      */
     Terminal.bindKeys = function(term) {
       on(term.element, 'keydown', function(ev) {
+        /*
+         * Clear all selections if the key pressed was not among
+         * Shift, Alt, Cmd, Ctrl.
+         */
+        var selection = window.getSelection();
+        if (selection.toString() != '') {
+          if ([16, 17, 18, 91].indexOf(ev.keyCode) == -1)  {
+            selection.removeAllRanges();
+          }
+        }
         term.keyDown(ev);
       }, true);
 
     };
 
 
+    Terminal.click = function (term) {
+      /*
+       * Do not perform the "drop" event. Altering the contents of the
+       * terminal with drag n drop is unwanted behavior.
+       */
+      on(term.element, 'click', function (ev) {
+        term.cancel(ev, true);
+      });
+    };
+
+
     /*
      * Insert the given row to the terminal or produce a new one
      * if no row argument is passed. Return the inserted row.
       this.element.classList.add('xterm');
       this.element.classList.add('xterm-theme-' + this.theme);
       this.element.setAttribute('tabindex', 0);
-      this.element.contentEditable = 'true';
       this.element.spellcheck = 'false';
 
       /*