win32u: Add a clipping_cursor member to user_thread_info.

This commit is contained in:
Rémi Bernon 2023-05-31 18:43:48 +02:00 committed by Alexandre Julliard
parent 89a7c05ad9
commit 3cca65e328
2 changed files with 9 additions and 1 deletions

View file

@ -404,6 +404,7 @@ static const KBDTABLES kbdus_tables =
.fLocaleFlags = MAKELONG(0, KBD_VERSION),
};
static LONG clipping_cursor; /* clipping thread counter */
LONG global_key_state_counter = 0;
BOOL grab_pointer = TRUE;
@ -2504,6 +2505,9 @@ BOOL process_wine_clipcursor( BOOL empty, BOOL reset )
TRACE( "empty %u, reset %u\n", empty, reset );
if (thread_info->clipping_cursor) InterlockedDecrement( &clipping_cursor );
thread_info->clipping_cursor = FALSE;
if (reset)
{
thread_info->clipping_reset = NtGetTickCount();
@ -2514,7 +2518,10 @@ BOOL process_wine_clipcursor( BOOL empty, BOOL reset )
if (empty) return user_driver->pClipCursor( NULL, reset );
get_clip_cursor( &rect );
return user_driver->pClipCursor( &rect, FALSE );
if (!user_driver->pClipCursor( &rect, FALSE )) return FALSE;
InterlockedIncrement( &clipping_cursor );
thread_info->clipping_cursor = TRUE;
return TRUE;
}
/***********************************************************************

View file

@ -130,6 +130,7 @@ struct user_thread_info
UINT kbd_layout_id; /* Current keyboard layout ID */
struct rawinput_thread_data *rawinput; /* RawInput thread local data / buffer */
UINT spy_indent; /* Current spy indent */
BOOL clipping_cursor; /* thread is currently clipping */
DWORD clipping_reset; /* time when clipping was last reset */
};