user32: Merge the AcquireClipboard and EmptyClipboard driver entry points.

This commit is contained in:
Alexandre Julliard 2015-06-03 16:45:40 +09:00
parent b7c340de73
commit 070a82e743
9 changed files with 12 additions and 45 deletions

View File

@ -295,10 +295,6 @@ BOOL WINAPI EmptyClipboard(void)
* WM_DESTROYCLIPBOARD itself. */
CLIPBOARD_SetClipboardOwner(cbinfo.hWndOpen);
/* Acquire the selection. This will notify the previous owner
* to clear its cache. */
USER_Driver->pAcquireClipboard(cbinfo.hWndOpen);
USER_Driver->pEmptyClipboard();
bCBHasChanged = TRUE;

View File

@ -120,7 +120,6 @@ static const USER_DRIVER *load_driver(void)
GET_USER_FUNC(GetCursorPos);
GET_USER_FUNC(SetCursorPos);
GET_USER_FUNC(ClipCursor);
GET_USER_FUNC(AcquireClipboard);
GET_USER_FUNC(EmptyClipboard);
GET_USER_FUNC(SetClipboardData);
GET_USER_FUNC(GetClipboardData);
@ -334,11 +333,6 @@ static BOOL CDECL nulldrv_ClipCursor( LPCRECT clip )
return FALSE;
}
static INT CDECL nulldrv_AcquireClipboard( HWND hwnd )
{
return 0;
}
static BOOL CDECL nulldrv_CountClipboardFormats(void)
{
return 0;
@ -536,7 +530,6 @@ static USER_DRIVER null_driver =
nulldrv_SetCursorPos,
nulldrv_ClipCursor,
/* clipboard functions */
nulldrv_AcquireClipboard,
nulldrv_CountClipboardFormats,
nulldrv_EmptyClipboard,
nulldrv_EndClipboardUpdate,
@ -674,11 +667,6 @@ static BOOL CDECL loaderdrv_ClipCursor( LPCRECT clip )
return load_driver()->pClipCursor( clip );
}
static INT CDECL loaderdrv_AcquireClipboard( HWND hwnd )
{
return load_driver()->pAcquireClipboard( hwnd );
}
static BOOL CDECL loaderdrv_CountClipboardFormats(void)
{
return load_driver()->pCountClipboardFormats();
@ -791,7 +779,6 @@ static USER_DRIVER lazy_load_driver =
loaderdrv_SetCursorPos,
loaderdrv_ClipCursor,
/* clipboard functions */
loaderdrv_AcquireClipboard,
loaderdrv_CountClipboardFormats,
loaderdrv_EmptyClipboard,
loaderdrv_EndClipboardUpdate,

View File

@ -80,7 +80,6 @@ typedef struct tagUSER_DRIVER {
BOOL (CDECL *pSetCursorPos)(INT,INT);
BOOL (CDECL *pClipCursor)(LPCRECT);
/* clipboard functions */
INT (CDECL *pAcquireClipboard)(HWND); /* Acquire selection */
BOOL (CDECL *pCountClipboardFormats)(void); /* Count available clipboard formats */
void (CDECL *pEmptyClipboard)(void); /* Empty clipboard data */
void (CDECL *pEndClipboardUpdate)(void); /* End clipboard update */

View File

@ -1879,17 +1879,6 @@ static void check_clipboard_ownership(HWND *owner)
**************************************************************************/
/**************************************************************************
* AcquireClipboard (MACDRV.@)
*/
int CDECL macdrv_AcquireClipboard(HWND hwnd)
{
TRACE("hwnd %p\n", hwnd);
check_clipboard_ownership(NULL);
return 0;
}
/**************************************************************************
* CountClipboardFormats (MACDRV.@)
*/
@ -1955,6 +1944,7 @@ INT CDECL macdrv_CountClipboardFormats(void)
void CDECL macdrv_EmptyClipboard(void)
{
TRACE("()\n");
check_clipboard_ownership(NULL);
macdrv_clear_pasteboard();
}

View File

@ -4,7 +4,6 @@
# USER driver
@ cdecl AcquireClipboard(long) macdrv_AcquireClipboard
@ cdecl ActivateKeyboardLayout(long long) macdrv_ActivateKeyboardLayout
@ cdecl Beep() macdrv_Beep
@ cdecl ChangeDisplaySettingsEx(ptr ptr long long long) macdrv_ChangeDisplaySettingsEx

View File

@ -2924,9 +2924,9 @@ static DWORD WINAPI selection_thread_proc(LPVOID p)
}
/**************************************************************************
* AcquireClipboard (X11DRV.@)
* X11DRV_AcquireClipboard
*/
int CDECL X11DRV_AcquireClipboard(HWND hWndClipWindow)
void X11DRV_AcquireClipboard(HWND hWndClipWindow)
{
DWORD procid;
HANDLE selectionThread;
@ -2953,7 +2953,8 @@ int CDECL X11DRV_AcquireClipboard(HWND hWndClipWindow)
GetCurrentThreadId(),
GetWindowThreadProcessId(hWndClipWindow, NULL), hWndClipWindow);
return SendMessageW(hWndClipWindow, WM_X11DRV_ACQUIRE_SELECTION, 0, 0);
SendMessageW(hWndClipWindow, WM_X11DRV_ACQUIRE_SELECTION, 0, 0);
return;
}
}
@ -2966,19 +2967,13 @@ int CDECL X11DRV_AcquireClipboard(HWND hWndClipWindow)
HANDLE event = CreateEventW(NULL, FALSE, FALSE, NULL);
selectionThread = CreateThread(NULL, 0, selection_thread_proc, event, 0, NULL);
if (!selectionThread)
if (selectionThread)
{
WARN("Could not start clipboard thread\n");
CloseHandle(event);
return 0;
WaitForSingleObject(event, INFINITE);
CloseHandle(selectionThread);
}
WaitForSingleObject(event, INFINITE);
CloseHandle(event);
CloseHandle(selectionThread);
}
return 1;
}
@ -3005,6 +3000,7 @@ static void empty_clipboard(BOOL keepunowned)
*/
void CDECL X11DRV_EmptyClipboard(void)
{
X11DRV_AcquireClipboard( GetOpenClipboardWindow() );
empty_clipboard( FALSE );
}

View File

@ -2593,7 +2593,8 @@ LRESULT CDECL X11DRV_WindowMessage( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
switch(msg)
{
case WM_X11DRV_ACQUIRE_SELECTION:
return X11DRV_AcquireClipboard( hwnd );
X11DRV_AcquireClipboard( hwnd );
return 0;
case WM_X11DRV_SET_WIN_REGION:
if ((data = get_win_data( hwnd )))
{

View File

@ -23,7 +23,6 @@
@ cdecl EnumDisplayMonitors(long ptr ptr long) X11DRV_EnumDisplayMonitors
@ cdecl EnumDisplaySettingsEx(ptr long ptr long) X11DRV_EnumDisplaySettingsEx
@ cdecl GetMonitorInfo(long ptr) X11DRV_GetMonitorInfo
@ cdecl AcquireClipboard(long) X11DRV_AcquireClipboard
@ cdecl CountClipboardFormats() X11DRV_CountClipboardFormats
@ cdecl CreateDesktopWindow(long) X11DRV_CreateDesktopWindow
@ cdecl CreateWindow(long) X11DRV_CreateWindow

View File

@ -600,7 +600,7 @@ extern XContext win_data_context DECLSPEC_HIDDEN;
extern XContext cursor_context DECLSPEC_HIDDEN;
extern void X11DRV_InitClipboard(void) DECLSPEC_HIDDEN;
extern int CDECL X11DRV_AcquireClipboard(HWND hWndClipWindow) DECLSPEC_HIDDEN;
extern void X11DRV_AcquireClipboard(HWND hWndClipWindow) DECLSPEC_HIDDEN;
extern void X11DRV_ResetSelectionOwner(void) DECLSPEC_HIDDEN;
extern void CDECL X11DRV_SetFocus( HWND hwnd ) DECLSPEC_HIDDEN;
extern void set_window_cursor( Window window, HCURSOR handle ) DECLSPEC_HIDDEN;