Jacek Caban : server: Store all 64 bits of window id.
Alexandre Julliard
julliard at winehq.org
Thu Feb 10 16:10:30 CST 2022
Module: wine
Branch: master
Commit: f139b06651ff259198b3ae765edc81483bf12e8f
URL: https://source.winehq.org/git/wine.git/?a=commit;h=f139b06651ff259198b3ae765edc81483bf12e8f
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu Feb 10 15:02:08 2022 +0100
server: Store all 64 bits of window id.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/win.c | 2 +-
include/wine/server_protocol.h | 11 +++++------
server/protocol.def | 7 +++----
server/request.h | 7 +++----
server/trace.c | 7 +++----
server/window.c | 4 ++--
6 files changed, 17 insertions(+), 21 deletions(-)
diff --git a/dlls/user32/win.c b/dlls/user32/win.c
index 82975cadd23..70c3521ab1d 100644
--- a/dlls/user32/win.c
+++ b/dlls/user32/win.c
@@ -2715,7 +2715,7 @@ LONG_PTR WIN_SetWindowLong( HWND hwnd, INT offset, UINT size, LONG_PTR newval, B
break;
case GWLP_ID:
req->flags = SET_WIN_ID;
- req->id = newval;
+ req->extra_value = newval;
break;
case GWLP_HINSTANCE:
req->flags = SET_WIN_INSTANCE;
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index 050b682d489..97ab4e25834 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -3112,12 +3112,12 @@ struct set_window_info_request
user_handle_t handle;
unsigned int style;
unsigned int ex_style;
- unsigned int id;
+ data_size_t extra_size;
mod_handle_t instance;
lparam_t user_data;
- int extra_offset;
- data_size_t extra_size;
lparam_t extra_value;
+ int extra_offset;
+ char __pad_60[4];
};
struct set_window_info_reply
{
@@ -3127,8 +3127,7 @@ struct set_window_info_reply
mod_handle_t old_instance;
lparam_t old_user_data;
lparam_t old_extra_value;
- unsigned int old_id;
- char __pad_44[4];
+ lparam_t old_id;
};
#define SET_WIN_STYLE 0x01
#define SET_WIN_EXSTYLE 0x02
@@ -6263,7 +6262,7 @@ union generic_reply
/* ### protocol_version begin ### */
-#define SERVER_PROTOCOL_VERSION 742
+#define SERVER_PROTOCOL_VERSION 743
/* ### protocol_version end ### */
diff --git a/server/protocol.def b/server/protocol.def
index 02e73047f9b..21b17c11551 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2303,19 +2303,18 @@ enum message_type
user_handle_t handle; /* handle to the window */
unsigned int style; /* window style */
unsigned int ex_style; /* window extended style */
- unsigned int id; /* window id */
+ data_size_t extra_size; /* size to set in extra bytes */
mod_handle_t instance; /* creator instance */
lparam_t user_data; /* user-specific data */
+ lparam_t extra_value; /* value to set in extra bytes or window id */
int extra_offset; /* offset to set in extra bytes */
- data_size_t extra_size; /* size to set in extra bytes */
- lparam_t extra_value; /* value to set in extra bytes */
@REPLY
unsigned int old_style; /* old window style */
unsigned int old_ex_style; /* old window extended style */
mod_handle_t old_instance; /* old creator instance */
lparam_t old_user_data; /* old user-specific data */
lparam_t old_extra_value; /* old value in extra bytes */
- unsigned int old_id; /* old window id */
+ lparam_t old_id; /* old window id */
@END
#define SET_WIN_STYLE 0x01
#define SET_WIN_EXSTYLE 0x02
diff --git a/server/request.h b/server/request.h
index 98b3300de2c..f2d0e827d94 100644
--- a/server/request.h
+++ b/server/request.h
@@ -1479,12 +1479,11 @@ C_ASSERT( FIELD_OFFSET(struct set_window_info_request, is_unicode) == 14 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_request, handle) == 16 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_request, style) == 20 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_request, ex_style) == 24 );
-C_ASSERT( FIELD_OFFSET(struct set_window_info_request, id) == 28 );
+C_ASSERT( FIELD_OFFSET(struct set_window_info_request, extra_size) == 28 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_request, instance) == 32 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_request, user_data) == 40 );
-C_ASSERT( FIELD_OFFSET(struct set_window_info_request, extra_offset) == 48 );
-C_ASSERT( FIELD_OFFSET(struct set_window_info_request, extra_size) == 52 );
-C_ASSERT( FIELD_OFFSET(struct set_window_info_request, extra_value) == 56 );
+C_ASSERT( FIELD_OFFSET(struct set_window_info_request, extra_value) == 48 );
+C_ASSERT( FIELD_OFFSET(struct set_window_info_request, extra_offset) == 56 );
C_ASSERT( sizeof(struct set_window_info_request) == 64 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_reply, old_style) == 8 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_reply, old_ex_style) == 12 );
diff --git a/server/trace.c b/server/trace.c
index 429b39a5cdd..32606d540f7 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -2907,12 +2907,11 @@ static void dump_set_window_info_request( const struct set_window_info_request *
fprintf( stderr, ", handle=%08x", req->handle );
fprintf( stderr, ", style=%08x", req->style );
fprintf( stderr, ", ex_style=%08x", req->ex_style );
- fprintf( stderr, ", id=%08x", req->id );
+ fprintf( stderr, ", extra_size=%u", req->extra_size );
dump_uint64( ", instance=", &req->instance );
dump_uint64( ", user_data=", &req->user_data );
- fprintf( stderr, ", extra_offset=%d", req->extra_offset );
- fprintf( stderr, ", extra_size=%u", req->extra_size );
dump_uint64( ", extra_value=", &req->extra_value );
+ fprintf( stderr, ", extra_offset=%d", req->extra_offset );
}
static void dump_set_window_info_reply( const struct set_window_info_reply *req )
@@ -2922,7 +2921,7 @@ static void dump_set_window_info_reply( const struct set_window_info_reply *req
dump_uint64( ", old_instance=", &req->old_instance );
dump_uint64( ", old_user_data=", &req->old_user_data );
dump_uint64( ", old_extra_value=", &req->old_extra_value );
- fprintf( stderr, ", old_id=%08x", req->old_id );
+ dump_uint64( ", old_id=", &req->old_id );
}
static void dump_set_parent_request( const struct set_parent_request *req )
diff --git a/server/window.c b/server/window.c
index 6b889df9149..7675cd1103d 100644
--- a/server/window.c
+++ b/server/window.c
@@ -74,7 +74,7 @@ struct window
struct region *update_region; /* update region (relative to window rect) */
unsigned int style; /* window style */
unsigned int ex_style; /* window extended style */
- unsigned int id; /* window id */
+ lparam_t id; /* window id */
mod_handle_t instance; /* creator instance */
unsigned int is_unicode : 1; /* ANSI or unicode */
unsigned int is_linked : 1; /* is it linked into the parent z-order list? */
@@ -2245,7 +2245,7 @@ DECL_HANDLER(set_window_info)
else win->ex_style = (req->ex_style & ~WS_EX_TOPMOST) | (win->ex_style & WS_EX_TOPMOST);
if (!(win->ex_style & WS_EX_LAYERED)) win->is_layered = 0;
}
- if (req->flags & SET_WIN_ID) win->id = req->id;
+ if (req->flags & SET_WIN_ID) win->id = req->extra_value;
if (req->flags & SET_WIN_INSTANCE) win->instance = req->instance;
if (req->flags & SET_WIN_UNICODE) win->is_unicode = req->is_unicode;
if (req->flags & SET_WIN_USERDATA) win->user_data = req->user_data;
More information about the wine-cvs
mailing list