From 5fe4e2d08b99d15adbdc4d0a586061351a4d814b Mon Sep 17 00:00:00 2001
From: Slávek Banko <slavek.banko@axis.cz>
Date: Tue, 23 Mar 2021 12:49:26 +0100
Subject: krdc: Do not synchronize the contents of the clipboard in view only
 mode. This fixes an incomplete solution from commit 9598af1608.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
---
 krdc/vnc/kvncview.cpp | 27 +++++++++++++++++++--------
 1 file changed, 19 insertions(+), 8 deletions(-)

diff --git a/krdc/vnc/kvncview.cpp b/krdc/vnc/kvncview.cpp
index d4f71cee..ea5e84f4 100644
--- a/krdc/vnc/kvncview.cpp
+++ b/krdc/vnc/kvncview.cpp
@@ -331,8 +331,6 @@ TQSize KVncView::framebufferSize() {
 void KVncView::setViewOnly(bool s) {
 	m_viewOnly = s;
 
-	m_dontSendCb = s;
-
 	if (s)
 		setCursor(TQt::ArrowCursor);
 	else
@@ -516,12 +514,15 @@ void KVncView::customEvent(TQCustomEvent *e)
 		TQApplication::beep();
 	}
 	else if (e->type() == ServerCutEventType) {
-		ServerCutEvent *sce = (ServerCutEvent*) e;
-		TQString ctext = TQString::fromUtf8(sce->bytes(), sce->length());
-		m_dontSendCb = true;
-		m_cb->setText(ctext, TQClipboard::Clipboard);
-		m_cb->setText(ctext, TQClipboard::Selection);
-		m_dontSendCb = false;
+		if (!m_viewOnly)
+		{
+			ServerCutEvent *sce = (ServerCutEvent*) e;
+			TQString ctext = TQString::fromUtf8(sce->bytes(), sce->length());
+			m_dontSendCb = true;
+			m_cb->setText(ctext, TQClipboard::Clipboard);
+			m_cb->setText(ctext, TQClipboard::Selection);
+			m_dontSendCb = false;
+		}
 	}
 	else if (e->type() == MouseStateEventType) {
 		MouseStateEvent *mse = (MouseStateEvent*) e;
@@ -712,6 +713,11 @@ void KVncView::clipboardChanged() {
 	if (m_status != REMOTE_VIEW_CONNECTED)
 		return;
 
+	if (m_viewOnly)
+	{
+		return;
+	}
+
 	if (m_cb->ownsClipboard() || m_dontSendCb)
 		return;
 
@@ -726,6 +732,11 @@ void KVncView::selectionChanged() {
 	if (m_status != REMOTE_VIEW_CONNECTED)
 		return;
 
+	if (m_viewOnly)
+	{
+		return;
+	}
+
 	if (m_cb->ownsSelection() || m_dontSendCb)
 		return;
 
-- 
cgit v1.2.3

