]> source.dussan.org Git - tigervnc.git/commitdiff
Clear clipboard state when its not plain text
authorSamuel Mannehed <samuel@cendio.se>
Wed, 2 Oct 2024 08:18:22 +0000 (10:18 +0200)
committerSamuel Mannehed <samuel@cendio.se>
Wed, 2 Oct 2024 08:18:22 +0000 (10:18 +0200)
Commit 8a80c906b9f7c08b1c664569a97d327d62c6d8ae added a check to prevent
announcing clipboard when it's not plain text data. When this check
triggers and we want to ignore the non-plain text clipboard, we should
reset the state by no longer indicating pending clipboard, and by asking
the server to clear its clipboard. This ensures we don't end up in a
state where the server thinks the viewer has useful clipboard data, but
it doesn't.

vncviewer/Viewport.cxx

index fb6d43229eb0e4da57f3f600597d345edd748b97..e29c877cf59c7f8a5a970b78e978c82ebfbe33d8 100644 (file)
@@ -756,6 +756,9 @@ void Viewport::handleClipboardChange(int source, void *data)
 
   if (!Fl::clipboard_contains(Fl::clipboard_plain_text)) {
     vlog.debug("Got non-plain text in local clipboard, ignoring.");
+    // Reset the state as if we don't have any clipboard data at all
+    self->pendingClientClipboard = false;
+    self->cc->announceClipboard(false);
     return;
   }