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@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