summaryrefslogtreecommitdiffstats
path: root/win
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2019-05-02 12:32:03 +0200
committerPierre Ossman <ossman@cendio.se>2019-07-01 10:48:21 +0200
commit66f1db543b425f6fe64d437477e6f78924ec57be (patch)
tree196c5e5fd095f6690da363d05be306ec877c13b0 /win
parent546b2ad80a68e80a737aade06f0685cccb5e9716 (diff)
downloadtigervnc-66f1db543b425f6fe64d437477e6f78924ec57be.tar.gz
tigervnc-66f1db543b425f6fe64d437477e6f78924ec57be.zip
Clean up internal clipboard handling
We now filter incoming data, which means we can start assuming the clipboard data is always null terminated. This allows us to clean up a lot of the internal handling.
Diffstat (limited to 'win')
-rw-r--r--win/rfb_win32/Clipboard.cxx4
-rw-r--r--win/rfb_win32/Clipboard.h3
-rw-r--r--win/rfb_win32/SDisplay.cxx12
-rw-r--r--win/rfb_win32/SDisplay.h5
4 files changed, 12 insertions, 12 deletions
diff --git a/win/rfb_win32/Clipboard.cxx b/win/rfb_win32/Clipboard.cxx
index fca6c1df..49526956 100644
--- a/win/rfb_win32/Clipboard.cxx
+++ b/win/rfb_win32/Clipboard.cxx
@@ -113,11 +113,11 @@ Clipboard::processMessage(UINT msg, WPARAM wParam, LPARAM lParam) {
// Notify clients
if (notifier) {
if (!clipdata) {
- notifier->notifyClipboardChanged(0, 0);
+ notifier->notifyClipboardChanged(0);
} else {
CharArray unix_text(convertLF(clipdata, strlen(clipdata)));
removeNonISOLatin1Chars(unix_text.buf);
- notifier->notifyClipboardChanged(unix_text.buf, strlen(unix_text.buf));
+ notifier->notifyClipboardChanged(unix_text.buf);
}
} else {
vlog.debug("no clipboard notifier registered");
diff --git a/win/rfb_win32/Clipboard.h b/win/rfb_win32/Clipboard.h
index 3da7bfca..c69e981f 100644
--- a/win/rfb_win32/Clipboard.h
+++ b/win/rfb_win32/Clipboard.h
@@ -1,4 +1,5 @@
/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved.
+ * Copyright 2016-2019 Pierre Ossman for Cendio AB
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -38,7 +39,7 @@ namespace rfb {
// -=- Abstract base class for callback recipients
class Notifier {
public:
- virtual void notifyClipboardChanged(const char* text, int len) = 0;
+ virtual void notifyClipboardChanged(const char* text) = 0;
virtual ~Notifier() {};
};
diff --git a/win/rfb_win32/SDisplay.cxx b/win/rfb_win32/SDisplay.cxx
index 2cedc4a8..2c91e3f4 100644
--- a/win/rfb_win32/SDisplay.cxx
+++ b/win/rfb_win32/SDisplay.cxx
@@ -1,4 +1,5 @@
/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved.
+ * Copyright 2011-2019 Pierre Ossman for Cendio AB
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -328,19 +329,16 @@ bool SDisplay::checkLedState() {
return false;
}
-void SDisplay::clientCutText(const char* text, int len) {
- CharArray clip_sz(len+1);
- memcpy(clip_sz.buf, text, len);
- clip_sz.buf[len] = 0;
- clipboard->setClipText(clip_sz.buf);
+void SDisplay::clientCutText(const char* text) {
+ clipboard->setClipText(text);
}
void
-SDisplay::notifyClipboardChanged(const char* text, int len) {
+SDisplay::notifyClipboardChanged(const char* text) {
vlog.debug("clipboard text changed");
if (server)
- server->serverCutText(text, len);
+ server->serverCutText(text);
}
diff --git a/win/rfb_win32/SDisplay.h b/win/rfb_win32/SDisplay.h
index 6dbfabbc..1773b785 100644
--- a/win/rfb_win32/SDisplay.h
+++ b/win/rfb_win32/SDisplay.h
@@ -1,4 +1,5 @@
/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved.
+ * Copyright 2011-2019 Pierre Ossman for Cendio AB
*
* This is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -77,11 +78,11 @@ namespace rfb {
const char* userName);
virtual void pointerEvent(const Point& pos, int buttonmask);
virtual void keyEvent(rdr::U32 keysym, rdr::U32 keycode, bool down);
- virtual void clientCutText(const char* str, int len);
+ virtual void clientCutText(const char* str);
// -=- Clipboard
- virtual void notifyClipboardChanged(const char* text, int len);
+ virtual void notifyClipboardChanged(const char* text);
// -=- Display events