[1/3] server: Add field for window display affinity.
Andrew Wesie
awesie at gmail.com
Fri Jun 23 18:01:52 CDT 2017
Signed-off-by: Andrew Wesie <awesie at gmail.com>
---
include/wine/server_protocol.h | 9 ++++++---
server/protocol.def | 3 +++
server/request.h | 4 +++-
server/window.c | 4 ++++
4 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index d31579c..f442a94 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -47,7 +47,7 @@ struct reply_header
struct request_max_size
{
- int pad[16];
+ int pad[18];
};
#define FIRST_USER_HANDLE 0x0020
@@ -3465,6 +3465,8 @@ struct set_window_info_request
int extra_offset;
data_size_t extra_size;
lparam_t extra_value;
+ unsigned int affinity;
+ char __pad_68[4];
};
struct set_window_info_reply
{
@@ -3475,7 +3477,7 @@ struct set_window_info_reply
lparam_t old_user_data;
lparam_t old_extra_value;
unsigned int old_id;
- char __pad_44[4];
+ unsigned int old_affinity;
};
#define SET_WIN_STYLE 0x01
#define SET_WIN_EXSTYLE 0x02
@@ -3484,6 +3486,7 @@ struct set_window_info_reply
#define SET_WIN_USERDATA 0x10
#define SET_WIN_EXTRA 0x20
#define SET_WIN_UNICODE 0x40
+#define SET_WIN_AFFINITY 0x80
@@ -6419,6 +6422,6 @@ union generic_reply
struct terminate_job_reply terminate_job_reply;
};
-#define SERVER_PROTOCOL_VERSION 533
+#define SERVER_PROTOCOL_VERSION 534
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */
diff --git a/server/protocol.def b/server/protocol.def
index 1f88c6a..d53df49 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2506,6 +2506,7 @@ enum message_type
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 */
+ unsigned int affinity; /* window display affinity */
@REPLY
unsigned int old_style; /* old window style */
unsigned int old_ex_style; /* old window extended style */
@@ -2513,6 +2514,7 @@ enum message_type
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 */
+ unsigned int old_affinity; /* old window display affinity */
@END
#define SET_WIN_STYLE 0x01
#define SET_WIN_EXSTYLE 0x02
@@ -2521,6 +2523,7 @@ enum message_type
#define SET_WIN_USERDATA 0x10
#define SET_WIN_EXTRA 0x20
#define SET_WIN_UNICODE 0x40
+#define SET_WIN_AFFINITY 0x80
/* Set the parent of a window */
diff --git a/server/request.h b/server/request.h
index 30d2234..d51085a 100644
--- a/server/request.h
+++ b/server/request.h
@@ -1674,13 +1674,15 @@ 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( sizeof(struct set_window_info_request) == 64 );
+C_ASSERT( FIELD_OFFSET(struct set_window_info_request, affinity) == 64 );
+C_ASSERT( sizeof(struct set_window_info_request) == 72 );
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 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_reply, old_instance) == 16 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_reply, old_user_data) == 24 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_reply, old_extra_value) == 32 );
C_ASSERT( FIELD_OFFSET(struct set_window_info_reply, old_id) == 40 );
+C_ASSERT( FIELD_OFFSET(struct set_window_info_reply, old_affinity) == 44 );
C_ASSERT( sizeof(struct set_window_info_reply) == 48 );
C_ASSERT( FIELD_OFFSET(struct set_parent_request, handle) == 12 );
C_ASSERT( FIELD_OFFSET(struct set_parent_request, parent) == 16 );
diff --git a/server/window.c b/server/window.c
index f35d6f6..6d83a1b 100644
--- a/server/window.c
+++ b/server/window.c
@@ -83,6 +83,7 @@ struct window
unsigned int color_key; /* color key for a layered window */
unsigned int alpha; /* alpha value for a layered window */
unsigned int layered_flags; /* flags for a layered window */
+ unsigned int affinity; /* window display affinity */
lparam_t user_data; /* user-specific data */
WCHAR *text; /* window caption text */
unsigned int paint_flags; /* various painting flags */
@@ -485,6 +486,7 @@ static struct window *create_window( struct window *parent, struct window *owner
win->is_unicode = 1;
win->is_linked = 0;
win->is_layered = 0;
+ win->affinity = 0;
win->user_data = 0;
win->text = NULL;
win->paint_flags = 0;
@@ -2072,6 +2074,7 @@ DECL_HANDLER(set_window_info)
reply->old_id = win->id;
reply->old_instance = win->instance;
reply->old_user_data = win->user_data;
+ reply->old_affinity = win->affinity;
if (req->flags & SET_WIN_STYLE) win->style = req->style;
if (req->flags & SET_WIN_EXSTYLE)
{
@@ -2084,6 +2087,7 @@ DECL_HANDLER(set_window_info)
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;
+ if (req->flags & SET_WIN_AFFINITY) win->affinity = req->affinity;
if (req->flags & SET_WIN_EXTRA) memcpy( win->extra_bytes + req->extra_offset,
&req->extra_value, req->extra_size );
--
2.7.4
More information about the wine-patches
mailing list