]> git.proxmox.com Git - mirror_xterm.js.git/commitdiff
Merge pull request #409 from sourcelair/issue-#405-firefox-paste
authorParis Kasidiaris <pariskasidiaris@gmail.com>
Wed, 14 Dec 2016 10:38:30 +0000 (10:38 +0000)
committerGitHub <noreply@github.com>
Wed, 14 Dec 2016 10:38:30 +0000 (10:38 +0000)
Fix linux firefox paste

src/handlers/Clipboard.ts
src/xterm.js

index db528f9df8b3490b1a881c751c417222ecefeee8..e4967598cba8a42cd487ed5f9855534292170722 100644 (file)
@@ -7,13 +7,6 @@
 
 import { ITerminal } from '../Interfaces';
 
-// We are extending the ClipboardEvent interface, since TypeScript has not declared the
-// clientX and clientY properties that we use.
-interface IClipboardEvent extends ClipboardEvent {
-  clientX: number;
-  clientY: number;
-}
-
 interface IWindow extends Window {
   clipboardData?: {
     getData(format: string): string;
@@ -49,7 +42,7 @@ export function prepareTextForClipboard(text: string): string {
  * Binds copy functionality to the given terminal.
  * @param {ClipboardEvent} ev The original copy event to be handled
  */
-export function copyHandler(ev: IClipboardEvent, term: ITerminal) {
+export function copyHandler(ev: ClipboardEvent, term: ITerminal) {
   // We cast `window` to `any` type, because TypeScript has not declared the `clipboardData`
   // property that we use below for Internet Explorer.
   let copiedText = window.getSelection().toString(),
@@ -69,7 +62,7 @@ export function copyHandler(ev: IClipboardEvent, term: ITerminal) {
  * @param {ClipboardEvent} ev The original paste event to be handled
  * @param {Terminal} term The terminal on which to apply the handled paste event
  */
-export function pasteHandler(ev: IClipboardEvent, term: ITerminal) {
+export function pasteHandler(ev: ClipboardEvent, term: ITerminal) {
   ev.stopPropagation();
 
   let text: string;
@@ -103,10 +96,10 @@ export function pasteHandler(ev: IClipboardEvent, term: ITerminal) {
  * area, then bring the terminal's input below the cursor, in order to
  * trigger the event on the textarea and allow-right click paste, without
  * caring about disappearing selection.
- * @param {ClipboardEvent} ev The original paste event to be handled
+ * @param {MouseEvent} ev The original right click event to be handled
  * @param {Terminal} term The terminal on which to apply the handled paste event
  */
-export function rightClickHandler(ev: IClipboardEvent, term: ITerminal) {
+export function rightClickHandler(ev: MouseEvent, term: ITerminal) {
   let s = document.getSelection(),
       selectedText = prepareTextForClipboard(s.toString()),
       clickIsOnSelection = false,
index dc1c7331dcce3f58b94dcc0fd37783b5667bf820..12c236f04833242560c042e0f5f4dd70b6eb4550 100644 (file)
@@ -433,6 +433,9 @@ Terminal.prototype.initGlobal = function() {
   on(this.textarea, 'paste', function (ev) {
     pasteHandler.call(this, ev, term);
   });
+  on(this.element, 'paste', function (ev) {
+    pasteHandler.call(this, ev, term);
+  });
 
   function rightClickHandlerWrapper (ev) {
     rightClickHandler.call(this, ev, term);