Commit 99d5b75c authored by Alexandre Julliard's avatar Alexandre Julliard

winex11: Don't disallow replacing unowned formats.

parent d9df9770
...@@ -93,7 +93,6 @@ static void set_clipboard_data_process( int arg ) ...@@ -93,7 +93,6 @@ static void set_clipboard_data_process( int arg )
todo_wine_if( arg == 1 || arg == 3 ) todo_wine_if( arg == 1 || arg == 3 )
ok( IsClipboardFormatAvailable( CF_WAVE ), "process %u: CF_WAVE not available\n", arg ); ok( IsClipboardFormatAvailable( CF_WAVE ), "process %u: CF_WAVE not available\n", arg );
ret = SetClipboardData( CF_WAVE, GlobalAlloc( GMEM_DDESHARE | GMEM_ZEROINIT, 100 )); 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() ); ok( ret != 0, "process %u: SetClipboardData failed err %u\n", arg, GetLastError() );
} }
else else
......
...@@ -3013,26 +3013,9 @@ void CDECL X11DRV_EmptyClipboard(void) ...@@ -3013,26 +3013,9 @@ void CDECL X11DRV_EmptyClipboard(void)
*/ */
BOOL CDECL X11DRV_SetClipboardData(UINT wFormat, HANDLE hData, BOOL owner) BOOL CDECL X11DRV_SetClipboardData(UINT wFormat, HANDLE hData, BOOL owner)
{ {
DWORD flags = 0; if (!owner) X11DRV_CLIPBOARD_UpdateCache();
BOOL bResult = TRUE;
/* If it's not owned, data can only be set if the format data is not already owned */ return X11DRV_CLIPBOARD_InsertClipboardData(wFormat, hData, 0, NULL, TRUE);
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;
} }
......
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