From 570ed62f6bb93f82f1ed28f1089e5604393902f6 Mon Sep 17 00:00:00 2001 From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com> Date: Mon, 4 Jan 2021 15:44:05 -0500 Subject: [PATCH] chatview: add support for pasting and drafting js special characters Note: it will also prevent potential js template literal Change-Id: I66377fa77bd9381b66b50c0f7b41c16ddd8cb748 --- src/web-chatview/chatview.js | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/web-chatview/chatview.js b/src/web-chatview/chatview.js index e0b4d573..d13ee9bd 100644 --- a/src/web-chatview/chatview.js +++ b/src/web-chatview/chatview.js @@ -119,6 +119,11 @@ if (use_qt) { } new QWebChannel(qt.webChannelTransport, function (channel) { window.jsbridge = channel.objects.jsbridge + + // connect to a signal + window.jsbridge.setSendMessageContentRequest.connect(function(content) { + setSendMessageContent(content) + }); }) } @@ -2457,15 +2462,21 @@ function setCaretPosition(elem, caretPos) { } } -function replaceText(text) { - var input = messageBarInput - var currentContent = input.value - var start = input.selectionStart - var end = input.selectionEnd - var output = [currentContent.slice(0, start), text, currentContent.slice(end)].join("") - input.value = output - setCaretPosition(input, start + text.length) - grow_text_area() +function replaceText() { + navigator.clipboard.readText() + .then(text => { + var input = messageBarInput + var currentContent = input.value + var start = input.selectionStart + var end = input.selectionEnd + var output = [currentContent.slice(0, start), text, currentContent.slice(end)].join("") + input.value = output + setCaretPosition(input, start + text.length) + grow_text_area() + }) + .catch(err => { + console.error('Failed to read clipboard contents: ', err) + }) } /** -- GitLab