winex11: Don't disallow replacing unowned formats.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2016-08-23 17:59:36 +09:00
parent d9df977006
commit 99d5b75c7d
2 changed files with 2 additions and 20 deletions

View File

@ -93,7 +93,6 @@ static void set_clipboard_data_process( int arg )
todo_wine_if( arg == 1 || arg == 3 )
ok( IsClipboardFormatAvailable( CF_WAVE ), "process %u: CF_WAVE not available\n", arg );
ret = SetClipboardData( CF_WAVE, GlobalAlloc( GMEM_DDESHARE | GMEM_ZEROINIT, 100 ));
todo_wine_if( arg == 2 || arg == 4 )
ok( ret != 0, "process %u: SetClipboardData failed err %u\n", arg, GetLastError() );
}
else

View File

@ -3013,26 +3013,9 @@ void CDECL X11DRV_EmptyClipboard(void)
*/
BOOL CDECL X11DRV_SetClipboardData(UINT wFormat, HANDLE hData, BOOL owner)
{
DWORD flags = 0;
BOOL bResult = TRUE;
if (!owner) X11DRV_CLIPBOARD_UpdateCache();
/* If it's not owned, data can only be set if the format data is not already owned */
if (!owner)
{
LPWINE_CLIPDATA lpRender;
X11DRV_CLIPBOARD_UpdateCache();
if (((lpRender = X11DRV_CLIPBOARD_LookupData(wFormat)) &&
!(lpRender->wFlags & CF_FLAG_UNOWNED)))
bResult = FALSE;
else
flags = CF_FLAG_UNOWNED;
}
bResult &= X11DRV_CLIPBOARD_InsertClipboardData(wFormat, hData, flags, NULL, TRUE);
return bResult;
return X11DRV_CLIPBOARD_InsertClipboardData(wFormat, hData, 0, NULL, TRUE);
}