Move server cut text handler to Viewport
That way both incoming and outgoing clipboard are both in the same
place, making things clearer.
diff --git a/vncviewer/Viewport.cxx b/vncviewer/Viewport.cxx
index 1c0503c..851405c 100644
--- a/vncviewer/Viewport.cxx
+++ b/vncviewer/Viewport.cxx
@@ -228,6 +228,36 @@
damage(FL_DAMAGE_USER1, r.tl.x + x(), r.tl.y + y(), r.width(), r.height());
}
+void Viewport::serverCutText(const char* str, rdr::U32 len)
+{
+ char *buffer;
+ int size, ret;
+
+ if (!acceptClipboard)
+ return;
+
+ size = fl_utf8froma(NULL, 0, str, len);
+ if (size <= 0)
+ return;
+
+ size++;
+
+ buffer = new char[size];
+
+ ret = fl_utf8froma(buffer, size, str, len);
+ assert(ret < size);
+
+ vlog.debug("Got clipboard data (%d bytes)", (int)strlen(buffer));
+
+ // RFB doesn't have separate selection and clipboard concepts, so we
+ // dump the data into both variants.
+ if (setPrimary)
+ Fl::copy(buffer, ret, 0);
+ Fl::copy(buffer, ret, 1);
+
+ delete [] buffer;
+}
+
static const char * dotcursor_xpm[] = {
"5 5 2 1",
". c #000000",