Alexandre Julliard : server: Also return the previous cursor position in the set_cursor request.
Alexandre Julliard
julliard at winehq.org
Thu Apr 21 11:17:46 CDT 2011
Module: wine
Branch: master
Commit: abe5440e3218f4e2dce7759ed6fc84e96de06a5f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=abe5440e3218f4e2dce7759ed6fc84e96de06a5f
Author: Alexandre Julliard <julliard at 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 );
More information about the wine-cvs
mailing list