From f0159012a9185d9133e7944a8a770adb0cb00488 Mon Sep 17 00:00:00 2001 From: Exodus4D Date: Sun, 26 Feb 2017 14:19:05 +0100 Subject: [PATCH] - fixed "lazy" pasting of signatures, closed #397 --- js/app/ui/system_signature.js | 9 ++++++--- public/js/v1.2.1/app/ui/system_signature.js | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/js/app/ui/system_signature.js b/js/app/ui/system_signature.js index 75361619..7ef8e8c1 100644 --- a/js/app/ui/system_signature.js +++ b/js/app/ui/system_signature.js @@ -2206,12 +2206,15 @@ define([ }); // event listener for global "paste" signatures into the page ------------------------------------------------- - $(document).off('paste').on('paste', function(e){ + $('body').off('paste').on('paste', function(e){ + let targetElement = $(e.target); // do not read clipboard if pasting into form elements if( - $(e.target).prop('tagName').toLowerCase() !== 'input' && - $(e.target).prop('tagName').toLowerCase() !== 'textarea' + targetElement.prop('tagName').toLowerCase() !== 'input' && + targetElement.prop('tagName').toLowerCase() !== 'textarea' || ( + targetElement.is('input[type="search"]') // Datatables "search" field bubbles `paste.DT` event :( + ) ){ let clipboard = (e.originalEvent || e).clipboardData.getData('text/plain'); diff --git a/public/js/v1.2.1/app/ui/system_signature.js b/public/js/v1.2.1/app/ui/system_signature.js index 75361619..7ef8e8c1 100644 --- a/public/js/v1.2.1/app/ui/system_signature.js +++ b/public/js/v1.2.1/app/ui/system_signature.js @@ -2206,12 +2206,15 @@ define([ }); // event listener for global "paste" signatures into the page ------------------------------------------------- - $(document).off('paste').on('paste', function(e){ + $('body').off('paste').on('paste', function(e){ + let targetElement = $(e.target); // do not read clipboard if pasting into form elements if( - $(e.target).prop('tagName').toLowerCase() !== 'input' && - $(e.target).prop('tagName').toLowerCase() !== 'textarea' + targetElement.prop('tagName').toLowerCase() !== 'input' && + targetElement.prop('tagName').toLowerCase() !== 'textarea' || ( + targetElement.is('input[type="search"]') // Datatables "search" field bubbles `paste.DT` event :( + ) ){ let clipboard = (e.originalEvent || e).clipboardData.getData('text/plain');