[X2Go-Commits] [x2gokdrive] 01/01: extended clipboard support for HTML client.

git-admin at x2go.org git-admin at x2go.org
Mon Apr 19 18:35:37 CEST 2021


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2gokdrive.

commit 714a0c0f557812624d2eb9afb90a37fc9846963f
Author: Oleksandr Shneyder <o.shneyder at phoca-gmbh.de>
Date:   Mon Apr 19 11:35:22 2021 -0500

    extended clipboard support for HTML client.
---
 debian/changelog      | 1 +
 x2gokdriveremote.c    | 3 ++-
 x2gokdriveremote.h    | 3 ++-
 x2gokdriveselection.c | 5 +++--
 4 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index b652c50..7bff2ec 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -18,6 +18,7 @@ x2gokdrive (0.0.0.1-0x2go1) UNRELEASED; urgency=medium
     - move declaration of RemoteHostVars from x2gokdriveremote.h to x2gokdriveremote.c.
     - add some support for HTML5 client (like converting pointer cursors to PNG format).
     - fix crashing if client is sending unrequested selection.
+    - extended clipboard support for HTML client.
 
   [ Mihai Moldovan ]
   * Initial release:
diff --git a/x2gokdriveremote.c b/x2gokdriveremote.c
index 620332f..e405a04 100644
--- a/x2gokdriveremote.c
+++ b/x2gokdriveremote.c
@@ -2467,7 +2467,8 @@ void set_client_version(uint16_t ver, uint16_t os)
     //clients version >= 1 supporting extended selection (sending big amount of data aín several chunks)
     remoteVars.selstruct.clientSupportsExetndedSelection=(ver > 1);
     //Linux clients supporting sending selection on demand (not sending data if not needed)
-    remoteVars.selstruct.clientSupportsOnDemandSelection=((ver > 1) && (os == OS_LINUX));
+    //Web client support clipboard and selection on demand starting from v.4
+    remoteVars.selstruct.clientSupportsOnDemandSelection=(((ver > 1) && (os == OS_LINUX)) || ((ver > 3) && (os == WEB)));
 
 }
 
diff --git a/x2gokdriveremote.h b/x2gokdriveremote.h
index df50d05..8bb7a58 100644
--- a/x2gokdriveremote.h
+++ b/x2gokdriveremote.h
@@ -97,7 +97,8 @@
 //Changes 0 - 1: sending and recieving client and OS version
 //Changes 1 - 2: supporting extended selection and sending selection on demand
 //Changes 2 - 3: supporting web client, sending cursors in PNG format and know about KEEPALIVE event
-#define FEATURE_VERSION 3
+//Changes 3 - 4: extended clipboard support for web client
+#define FEATURE_VERSION 4
 
 
 #define EPHYR_WANT_DEBUG 1
diff --git a/x2gokdriveselection.c b/x2gokdriveselection.c
index 85447a3..b2122d6 100644
--- a/x2gokdriveselection.c
+++ b/x2gokdriveselection.c
@@ -651,7 +651,7 @@ void read_selection_property(xcb_atom_t selection, xcb_atom_t property)
                         {
                             chunk->mimeData=UTF_STRING;
                             //for text chunks > 1K using zlib compression if client supports it
-                            if(remoteVars->selstruct.clientSupportsExetndedSelection && chunk->size > 1024)
+                            if(remoteVars->selstruct.clientSupportsExetndedSelection && chunk->size > 1024 && remoteVars->client_os != WEB )
                             {
                                 compressed_data=zcompress(chunk->data, chunk->size, &compressed_size);
                                 if(compressed_data && compressed_size)
@@ -891,7 +891,8 @@ void process_selection_owner_notify(xcb_generic_event_t *e)
         return;
     }
 
-    if(remoteVars->selstruct.selectionMode == CLIP_NONE || remoteVars->selstruct.selectionMode == CLIP_CLIENT)
+    //web clients V. < 4 not support selections
+    if(remoteVars->selstruct.selectionMode == CLIP_NONE || remoteVars->selstruct.selectionMode == CLIP_CLIENT || ((remoteVars->client_version < 4) && (remoteVars->client_os == WEB)))
     {
         EPHYR_DBG("Server selection is disabled");
         return;

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2gokdrive.git


More information about the x2go-commits mailing list