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