[client,common] lock clipboard on update

This commit is contained in:
akallabeth
2025-05-22 14:44:48 +02:00
parent 59d66237b7
commit 03a72a56db
2 changed files with 8 additions and 4 deletions

View File

@@ -2039,7 +2039,9 @@ static UINT xf_cliprdr_server_format_list(CliprdrClientContext* context,
}
}
ClipboardLock(clipboard->system);
ret = cliprdr_file_context_notify_new_server_format_list(clipboard->file);
ClipboardUnlock(clipboard->system);
if (ret)
goto out;
@@ -2685,7 +2687,9 @@ void xf_cliprdr_uninit(xfContext* xfc, CliprdrClientContext* cliprdr)
if (xfc->clipboard)
{
ClipboardLock(xfc->clipboard->system);
cliprdr_file_context_uninit(xfc->clipboard->file, cliprdr);
ClipboardUnlock(xfc->clipboard->system);
xfc->clipboard->context = NULL;
}
}

View File

@@ -585,6 +585,7 @@ static UINT prepare_clip_data_entry_without_id(CliprdrFileContext* file_context)
UINT cliprdr_file_context_notify_new_server_format_list(CliprdrFileContext* file_context)
{
UINT rc = CHANNEL_RC_OK;
WINPR_ASSERT(file_context);
WINPR_ASSERT(file_context->context);
@@ -594,12 +595,11 @@ UINT cliprdr_file_context_notify_new_server_format_list(CliprdrFileContext* file
clear_cdi_entries(file_context);
if (does_server_support_clipdata_locking(file_context))
return prepare_clip_data_entry_with_id(file_context);
rc = prepare_clip_data_entry_with_id(file_context);
else
return prepare_clip_data_entry_without_id(file_context);
#else
return CHANNEL_RC_OK;
rc = prepare_clip_data_entry_without_id(file_context);
#endif
return rc;
}
UINT cliprdr_file_context_notify_new_client_format_list(CliprdrFileContext* file_context)