Skip to content

Commit

Permalink
server: Assume the internal clip message to be WM_WINE_CLIPCURSOR.
Browse files Browse the repository at this point in the history
  • Loading branch information
rbernon authored and julliard committed May 30, 2023
1 parent d476a4c commit 61dbfea
Show file tree
Hide file tree
Showing 7 changed files with 4 additions and 16 deletions.
1 change: 0 additions & 1 deletion dlls/win32u/cursoricon.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ BOOL WINAPI NtUserClipCursor( const RECT *rect )

SERVER_START_REQ( set_cursor )
{
req->clip_msg = WM_WINE_CLIPCURSOR;
if (rect)
{
req->flags = SET_CURSOR_CLIP;
Expand Down
4 changes: 1 addition & 3 deletions include/wine/server_protocol.h
Original file line number Diff line number Diff line change
Expand Up @@ -5334,8 +5334,6 @@ struct set_cursor_request
int x;
int y;
rectangle_t clip;
unsigned int clip_msg;
char __pad_52[4];
};
struct set_cursor_reply
{
Expand Down Expand Up @@ -6415,7 +6413,7 @@ union generic_reply

/* ### protocol_version begin ### */

#define SERVER_PROTOCOL_VERSION 771
#define SERVER_PROTOCOL_VERSION 772

/* ### protocol_version end ### */

Expand Down
1 change: 0 additions & 1 deletion server/protocol.def
Original file line number Diff line number Diff line change
Expand Up @@ -3700,7 +3700,6 @@ struct handle_info
int x; /* cursor position */
int y;
rectangle_t clip; /* cursor clip rectangle */
unsigned int clip_msg; /* message to post on cursor clip changes */
@REPLY
user_handle_t prev_handle; /* previous handle */
int prev_count; /* previous show count */
Expand Down
9 changes: 2 additions & 7 deletions server/queue.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
#include "wingdi.h"
#include "winuser.h"
#include "winternl.h"
#include "ntuser.h"

#include "handle.h"
#include "file.h"
Expand Down Expand Up @@ -467,8 +468,7 @@ static void set_clip_rectangle( struct desktop *desktop, const rectangle_t *rect
}
else desktop->cursor.clip = top_rect;

if (desktop->cursor.clip_msg && send_clip_msg)
post_desktop_message( desktop, desktop->cursor.clip_msg, rect != NULL, 0 );
if (send_clip_msg) post_desktop_message( desktop, WM_WINE_CLIPCURSOR, rect != NULL, 0 );

/* warp the mouse to be inside the clip rect */
x = max( min( desktop->cursor.x, desktop->cursor.clip.right - 1 ), desktop->cursor.clip.left );
Expand Down Expand Up @@ -3294,11 +3294,6 @@ DECL_HANDLER(set_cursor)
if (req->flags & (SET_CURSOR_CLIP | SET_CURSOR_NOCLIP))
{
struct desktop *desktop = input->desktop;

/* only the desktop owner can set the message */
if (req->clip_msg && get_top_window_owner(desktop) == current->process)
desktop->cursor.clip_msg = req->clip_msg;

set_clip_rectangle( desktop, (req->flags & SET_CURSOR_NOCLIP) ? NULL : &req->clip, 0 );
}

Expand Down
3 changes: 1 addition & 2 deletions server/request.h
Original file line number Diff line number Diff line change
Expand Up @@ -2225,8 +2225,7 @@ C_ASSERT( FIELD_OFFSET(struct set_cursor_request, show_count) == 20 );
C_ASSERT( FIELD_OFFSET(struct set_cursor_request, x) == 24 );
C_ASSERT( FIELD_OFFSET(struct set_cursor_request, y) == 28 );
C_ASSERT( FIELD_OFFSET(struct set_cursor_request, clip) == 32 );
C_ASSERT( FIELD_OFFSET(struct set_cursor_request, clip_msg) == 48 );
C_ASSERT( sizeof(struct set_cursor_request) == 56 );
C_ASSERT( sizeof(struct set_cursor_request) == 48 );
C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, prev_handle) == 8 );
C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, prev_count) == 12 );
C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, prev_x) == 16 );
Expand Down
1 change: 0 additions & 1 deletion server/trace.c
Original file line number Diff line number Diff line change
Expand Up @@ -4407,7 +4407,6 @@ static void dump_set_cursor_request( const struct set_cursor_request *req )
fprintf( stderr, ", x=%d", req->x );
fprintf( stderr, ", y=%d", req->y );
dump_rectangle( ", clip=", &req->clip );
fprintf( stderr, ", clip_msg=%08x", req->clip_msg );
}

static void dump_set_cursor_reply( const struct set_cursor_reply *req )
Expand Down
1 change: 0 additions & 1 deletion server/user.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@ struct global_cursor
int x; /* cursor position */
int y;
rectangle_t clip; /* cursor clip rectangle */
unsigned int clip_msg; /* message to post for cursor clip changes */
unsigned int last_change; /* time of last position change */
user_handle_t win; /* window that contains the cursor */
};
Expand Down

0 comments on commit 61dbfea

Please sign in to comment.