]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
Handle the paste event better
authorParis <paris@sourcelair.com>
Thu, 2 Jun 2016 10:05:58 +0000 (13:05 +0300)
committerParis <paris@sourcelair.com>
Thu, 2 Jun 2016 10:05:58 +0000 (13:05 +0300)
demo/main.js
src/xterm.js

index 263ba1686b27a41694e5647b0bc62459968e8278..844d579153fec037e41e7521714d971290ea78eb 100644 (file)
@@ -1,6 +1,6 @@
 var terminalContainer = document.getElementById('terminal-container'),
     term = new Terminal(),
-    shellprompt = '> ';
+    shellprompt = '$ ';
 
 term.open(terminalContainer);
 term.fit();
@@ -32,3 +32,7 @@ term.on('key', function (key, ev) {
     term.write(key);
   }
 });
+
+term.on('paste', function (data, ev) {
+       term.write(data);
+});
index ca11292c348e29e8793c942969607eb25f793d18..e100e7c2caf69cde027b74c513aa209751a0bd5c 100644 (file)
     };
 
     /**
-     * Bind to paste event
+     * Bind to paste event and allow right-click pasting.
      */
     Terminal.bindPaste = function(term) {
       on(term.element, 'paste', function(ev) {
         if (ev.clipboardData) {
           var text = ev.clipboardData.getData('text/plain');
+          term.emit('paste', text, ev);
           term.handler(text);
         }
       });
+
+      /**
+       * Contenteditable hack in order to allow right-click paste
+       */
+      on(term.element, 'contextmenu', function (ev) {
+        console.log('hey');
+        term.element.contentEditable = true;
+      });
+
+      on(term.element, 'mouseup', function (ev) {
+        term.element.contentEditable = false;
+      });
     };
 
 
      */
     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.bindCopy = function(term) {
       on(term.element, 'copy', function(ev) {
-        return; //temporary
+        return;
       });
     };