Commit d9df9770 authored by Alexandre Julliard's avatar Alexandre Julliard

user32: Don't disallow delayed rendering even when not the clipboard owner.

parent 42c221db
...@@ -352,14 +352,6 @@ HANDLE WINAPI SetClipboardData(UINT wFormat, HANDLE hData) ...@@ -352,14 +352,6 @@ HANDLE WINAPI SetClipboardData(UINT wFormat, HANDLE hData)
return 0; return 0;
} }
/* If it's not owned, data can only be set if the format isn't
available and its rendering is not delayed */
if (!(flags & CB_OWNER) && !hData)
{
WARN("Clipboard not owned by calling task. Operation failed.\n");
return 0;
}
if (USER_Driver->pSetClipboardData(wFormat, hData, flags & CB_OWNER)) if (USER_Driver->pSetClipboardData(wFormat, hData, flags & CB_OWNER))
{ {
hResult = hData; hResult = hData;
......
...@@ -65,7 +65,7 @@ static DWORD WINAPI set_clipboard_data_thread(LPVOID arg) ...@@ -65,7 +65,7 @@ static DWORD WINAPI set_clipboard_data_thread(LPVOID arg)
if (GetClipboardOwner() == hwnd) if (GetClipboardOwner() == hwnd)
{ {
SetClipboardData( CF_WAVE, 0 ); SetClipboardData( CF_WAVE, 0 );
todo_wine ok( IsClipboardFormatAvailable( CF_WAVE ), "%u: SetClipboardData failed\n", thread_from_line ); ok( IsClipboardFormatAvailable( CF_WAVE ), "%u: SetClipboardData failed\n", thread_from_line );
ret = SetClipboardData( CF_WAVE, GlobalAlloc( GMEM_DDESHARE | GMEM_ZEROINIT, 100 )); ret = SetClipboardData( CF_WAVE, GlobalAlloc( GMEM_DDESHARE | GMEM_ZEROINIT, 100 ));
ok( ret != 0, "%u: SetClipboardData failed err %u\n", thread_from_line, GetLastError() ); ok( ret != 0, "%u: SetClipboardData failed err %u\n", thread_from_line, GetLastError() );
} }
......
...@@ -3016,16 +3016,14 @@ BOOL CDECL X11DRV_SetClipboardData(UINT wFormat, HANDLE hData, BOOL owner) ...@@ -3016,16 +3016,14 @@ BOOL CDECL X11DRV_SetClipboardData(UINT wFormat, HANDLE hData, BOOL owner)
DWORD flags = 0; DWORD flags = 0;
BOOL bResult = TRUE; BOOL bResult = TRUE;
/* If it's not owned, data can only be set if the format data is not already owned /* If it's not owned, data can only be set if the format data is not already owned */
and its rendering is not delayed */
if (!owner) if (!owner)
{ {
LPWINE_CLIPDATA lpRender; LPWINE_CLIPDATA lpRender;
X11DRV_CLIPBOARD_UpdateCache(); X11DRV_CLIPBOARD_UpdateCache();
if (!hData || if (((lpRender = X11DRV_CLIPBOARD_LookupData(wFormat)) &&
((lpRender = X11DRV_CLIPBOARD_LookupData(wFormat)) &&
!(lpRender->wFlags & CF_FLAG_UNOWNED))) !(lpRender->wFlags & CF_FLAG_UNOWNED)))
bResult = FALSE; bResult = FALSE;
else else
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment