Module: wine Branch: master Commit: abe5440e3218f4e2dce7759ed6fc84e96de06a5f URL: http://source.winehq.org/git/wine.git/?a=commit;h=abe5440e3218f4e2dce7759ed6...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Apr 20 20:29:16 2011 +0200
server: Also return the previous cursor position in the set_cursor request.
---
include/wine/server_protocol.h | 6 ++++-- server/protocol.def | 2 ++ server/queue.c | 2 ++ server/request.h | 12 +++++++----- server/trace.c | 2 ++ 5 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index 98bc101..6fdae05 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h @@ -4801,11 +4801,13 @@ struct set_cursor_reply struct reply_header __header; user_handle_t prev_handle; int prev_count; + int prev_x; + int prev_y; int new_x; int new_y; rectangle_t new_clip; unsigned int last_change; - char __pad_44[4]; + char __pad_52[4]; }; #define SET_CURSOR_HANDLE 0x01 #define SET_CURSOR_COUNT 0x02 @@ -5558,6 +5560,6 @@ union generic_reply struct set_cursor_reply set_cursor_reply; };
-#define SERVER_PROTOCOL_VERSION 421 +#define SERVER_PROTOCOL_VERSION 422
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */ diff --git a/server/protocol.def b/server/protocol.def index 7e0f0c8..6984bc5 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -3317,6 +3317,8 @@ enum coords_relative @REPLY user_handle_t prev_handle; /* previous handle */ int prev_count; /* previous show count */ + int prev_x; /* previous position */ + int prev_y; int new_x; /* new position */ int new_y; rectangle_t new_clip; /* new clip rectangle */ diff --git a/server/queue.c b/server/queue.c index b9b42e4..91fe1fc 100644 --- a/server/queue.c +++ b/server/queue.c @@ -2650,6 +2650,8 @@ DECL_HANDLER(set_cursor)
reply->prev_handle = input->cursor; reply->prev_count = input->cursor_count; + reply->prev_x = input->desktop->cursor.x; + reply->prev_y = input->desktop->cursor.y;
if (req->flags & SET_CURSOR_HANDLE) { diff --git a/server/request.h b/server/request.h index acf886f..b08033e 100644 --- a/server/request.h +++ b/server/request.h @@ -2101,11 +2101,13 @@ C_ASSERT( FIELD_OFFSET(struct set_cursor_request, clip_msg) == 48 ); C_ASSERT( sizeof(struct set_cursor_request) == 56 ); 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, new_x) == 16 ); -C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, new_y) == 20 ); -C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, new_clip) == 24 ); -C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, last_change) == 40 ); -C_ASSERT( sizeof(struct set_cursor_reply) == 48 ); +C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, prev_x) == 16 ); +C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, prev_y) == 20 ); +C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, new_x) == 24 ); +C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, new_y) == 28 ); +C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, new_clip) == 32 ); +C_ASSERT( FIELD_OFFSET(struct set_cursor_reply, last_change) == 48 ); +C_ASSERT( sizeof(struct set_cursor_reply) == 56 );
#endif /* WANT_REQUEST_HANDLERS */
diff --git a/server/trace.c b/server/trace.c index 2d2d82b..a296341 100644 --- a/server/trace.c +++ b/server/trace.c @@ -3854,6 +3854,8 @@ static void dump_set_cursor_reply( const struct set_cursor_reply *req ) { fprintf( stderr, " prev_handle=%08x", req->prev_handle ); fprintf( stderr, ", prev_count=%d", req->prev_count ); + fprintf( stderr, ", prev_x=%d", req->prev_x ); + fprintf( stderr, ", prev_y=%d", req->prev_y ); fprintf( stderr, ", new_x=%d", req->new_x ); fprintf( stderr, ", new_y=%d", req->new_y ); dump_rectangle( ", new_clip=", &req->new_clip );