[gnome-remote-desktop] clipboard-rdp: Add APIs to lock/unlock the clients clipboard data
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-remote-desktop] clipboard-rdp: Add APIs to lock/unlock the clients clipboard data
- Date: Fri, 30 Apr 2021 15:15:57 +0000 (UTC)
commit b7954ce03ff7c0fd9db109dd56823a1604922380
Author: Pascal Nowack <Pascal Nowack gmx de>
Date: Wed Mar 3 19:54:34 2021 +0100
clipboard-rdp: Add APIs to lock/unlock the clients clipboard data
For client-to-server file transfer, the locking states are tracked in
the FUSE implementation (rdp-fuse-clipboard).
So add APIs to clipboard-rdp, which will then later be used inside the
FUSE implementation.
src/grd-clipboard-rdp.c | 34 ++++++++++++++++++++++++++++++++++
src/grd-clipboard-rdp.h | 6 ++++++
2 files changed, 40 insertions(+)
---
diff --git a/src/grd-clipboard-rdp.c b/src/grd-clipboard-rdp.c
index 49df9e0..4615565 100644
--- a/src/grd-clipboard-rdp.c
+++ b/src/grd-clipboard-rdp.c
@@ -470,6 +470,40 @@ get_remote_format_data (GrdClipboardRdp *clipboard_rdp,
return data;
}
+void
+grd_clipboard_rdp_lock_remote_clipboard_data (GrdClipboardRdp *clipboard_rdp,
+ uint32_t clip_data_id)
+{
+ CliprdrServerContext *cliprdr_context = clipboard_rdp->cliprdr_context;
+ CLIPRDR_LOCK_CLIPBOARD_DATA lock_clipboard_data = {0};
+
+ g_debug ("[RDP.CLIPRDR] Locking clients clipboard data with clipDataId %u",
+ clip_data_id);
+
+ lock_clipboard_data.msgType = CB_LOCK_CLIPDATA;
+ lock_clipboard_data.clipDataId = clip_data_id;
+
+ cliprdr_context->ServerLockClipboardData (cliprdr_context,
+ &lock_clipboard_data);
+}
+
+void
+grd_clipboard_rdp_unlock_remote_clipboard_data (GrdClipboardRdp *clipboard_rdp,
+ uint32_t clip_data_id)
+{
+ CliprdrServerContext *cliprdr_context = clipboard_rdp->cliprdr_context;
+ CLIPRDR_UNLOCK_CLIPBOARD_DATA unlock_clipboard_data = {0};
+
+ g_debug ("[RDP.CLIPRDR] Unlocking clients clipboard data associated to "
+ "clipDataId %u", clip_data_id);
+
+ unlock_clipboard_data.msgType = CB_UNLOCK_CLIPDATA;
+ unlock_clipboard_data.clipDataId = clip_data_id;
+
+ cliprdr_context->ServerUnlockClipboardData (cliprdr_context,
+ &unlock_clipboard_data);
+}
+
void
grd_clipboard_rdp_request_remote_file_size_async (GrdClipboardRdp *clipboard_rdp,
uint32_t stream_id,
diff --git a/src/grd-clipboard-rdp.h b/src/grd-clipboard-rdp.h
index 8db6c8b..295a4ea 100644
--- a/src/grd-clipboard-rdp.h
+++ b/src/grd-clipboard-rdp.h
@@ -34,6 +34,12 @@ GrdClipboardRdp *grd_clipboard_rdp_new (GrdSessionRdp *session_rdp,
HANDLE vcm,
HANDLE stop_event);
+void grd_clipboard_rdp_lock_remote_clipboard_data (GrdClipboardRdp *clipboard_rdp,
+ uint32_t clip_data_id);
+
+void grd_clipboard_rdp_unlock_remote_clipboard_data (GrdClipboardRdp *clipboard_rdp,
+ uint32_t clip_data_id);
+
void grd_clipboard_rdp_request_remote_file_size_async (GrdClipboardRdp *clipboard_rdp,
uint32_t stream_id,
uint32_t list_index,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]