mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-07 04:44:06 +00:00
win32u/clipboard: Set handle of bitmap and palette as system object.
Signed-off-by: Jactry Zeng <jzeng@codeweavers.com>
This commit is contained in:
parent
e743f02010
commit
f30332fe5e
|
@ -2032,7 +2032,7 @@ static void test_data_handles(void)
|
|||
memset( &bmi, 0, sizeof(bmi) );
|
||||
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
result = GetDIBits( hdc, h, 0, 0, NULL, &bmi, 0 );
|
||||
todo_wine ok( !!result, "GetDIBits failed: %#lx.\n", GetLastError() );
|
||||
ok( !!result, "GetDIBits failed: %#lx.\n", GetLastError() );
|
||||
|
||||
bitmap = CreateBitmap( 10, 10, 1, 1, NULL );
|
||||
h = SetClipboardData( CF_DSPBITMAP, bitmap );
|
||||
|
@ -2050,8 +2050,8 @@ static void test_data_handles(void)
|
|||
ok( !!DeleteObject( palette ), "DeleteObject failed.\n" );
|
||||
h = GetClipboardData( CF_PALETTE );
|
||||
ok( h == palette, "Expected palette %p, got %p.\n", palette, h );
|
||||
todo_wine ok( !!GetPaletteEntries( h, 0, 1, &entry ), "GetPaletteEntries %p failed.\n", h );
|
||||
todo_wine ok( entry.peRed == 0x12 && entry.peGreen == 0x34 && entry.peBlue == 0x56,
|
||||
ok( !!GetPaletteEntries( h, 0, 1, &entry ), "GetPaletteEntries %p failed.\n", h );
|
||||
ok( entry.peRed == 0x12 && entry.peGreen == 0x34 && entry.peBlue == 0x56,
|
||||
"Got wrong color (%02x, %02x, %02x).\n", entry.peRed, entry.peGreen, entry.peBlue );
|
||||
|
||||
emf = create_emf();
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "ntstatus.h"
|
||||
#define WIN32_NO_STATUS
|
||||
#include "win32u_private.h"
|
||||
#include "ntgdi_private.h"
|
||||
#include "ntuser_private.h"
|
||||
#include "wine/server.h"
|
||||
#include "wine/debug.h"
|
||||
|
@ -112,8 +113,9 @@ static void free_cached_data( struct cached_format *cache )
|
|||
switch (cache->format)
|
||||
{
|
||||
case CF_BITMAP:
|
||||
case CF_DSPBITMAP:
|
||||
case CF_PALETTE:
|
||||
make_gdi_object_system( cache->handle, FALSE );
|
||||
case CF_DSPBITMAP:
|
||||
NtGdiDeleteObjectApp( cache->handle );
|
||||
break;
|
||||
|
||||
|
@ -595,6 +597,11 @@ NTSTATUS WINAPI NtUserSetClipboardData( UINT format, HANDLE data, struct set_cli
|
|||
cache->format = format;
|
||||
cache->handle = data;
|
||||
}
|
||||
|
||||
if (format == CF_BITMAP || format == CF_PALETTE)
|
||||
{
|
||||
make_gdi_object_system( cache->handle, TRUE );
|
||||
}
|
||||
}
|
||||
|
||||
pthread_mutex_lock( &clipboard_mutex );
|
||||
|
|
Loading…
Reference in a new issue