Alexandre Julliard : server: Return the window paint flags in the get_visible_region request.

Alexandre Julliard julliard at winehq.org
Mon Feb 11 13:06:32 CST 2013


Module: wine
Branch: master
Commit: bc602c3060692f3c6e9b1cca2a3eaa9299f4d6b6
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=bc602c3060692f3c6e9b1cca2a3eaa9299f4d6b6

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Feb 11 17:14:17 2013 +0100

server: Return the window paint flags in the get_visible_region request.

---

 include/wine/server_protocol.h |    4 +++-
 server/protocol.def            |    1 +
 server/request.h               |    5 +++--
 server/trace.c                 |    1 +
 server/window.c                |    1 +
 5 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h
index 99bcfae..8a8a0ed 100644
--- a/include/wine/server_protocol.h
+++ b/include/wine/server_protocol.h
@@ -3415,8 +3415,10 @@ struct get_visible_region_reply
     user_handle_t  top_win;
     rectangle_t    top_rect;
     rectangle_t    win_rect;
+    unsigned int   paint_flags;
     data_size_t    total_size;
     /* VARARG(region,rectangles); */
+    char __pad_52[4];
 };
 
 
@@ -5715,6 +5717,6 @@ union generic_reply
     struct set_suspend_context_reply set_suspend_context_reply;
 };
 
-#define SERVER_PROTOCOL_VERSION 438
+#define SERVER_PROTOCOL_VERSION 439
 
 #endif /* __WINE_WINE_SERVER_PROTOCOL_H */
diff --git a/server/protocol.def b/server/protocol.def
index 4038e48..7bb679a 100644
--- a/server/protocol.def
+++ b/server/protocol.def
@@ -2460,6 +2460,7 @@ enum coords_relative
     user_handle_t  top_win;       /* top window to clip against */
     rectangle_t    top_rect;      /* top window visible rect with screen coords */
     rectangle_t    win_rect;      /* window rect in screen coords */
+    unsigned int   paint_flags;   /* paint flags (from SET_WINPOS_* flags) */
     data_size_t    total_size;    /* total size of the resulting region */
     VARARG(region,rectangles);    /* list of rectangles for the region (in screen coords) */
 @END
diff --git a/server/request.h b/server/request.h
index f566e0d..b1b816f 100644
--- a/server/request.h
+++ b/server/request.h
@@ -1626,8 +1626,9 @@ C_ASSERT( sizeof(struct get_visible_region_request) == 24 );
 C_ASSERT( FIELD_OFFSET(struct get_visible_region_reply, top_win) == 8 );
 C_ASSERT( FIELD_OFFSET(struct get_visible_region_reply, top_rect) == 12 );
 C_ASSERT( FIELD_OFFSET(struct get_visible_region_reply, win_rect) == 28 );
-C_ASSERT( FIELD_OFFSET(struct get_visible_region_reply, total_size) == 44 );
-C_ASSERT( sizeof(struct get_visible_region_reply) == 48 );
+C_ASSERT( FIELD_OFFSET(struct get_visible_region_reply, paint_flags) == 44 );
+C_ASSERT( FIELD_OFFSET(struct get_visible_region_reply, total_size) == 48 );
+C_ASSERT( sizeof(struct get_visible_region_reply) == 56 );
 C_ASSERT( FIELD_OFFSET(struct get_surface_region_request, window) == 12 );
 C_ASSERT( sizeof(struct get_surface_region_request) == 16 );
 C_ASSERT( FIELD_OFFSET(struct get_surface_region_reply, visible_rect) == 8 );
diff --git a/server/trace.c b/server/trace.c
index 41c5424..c7a13d8 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -2926,6 +2926,7 @@ static void dump_get_visible_region_reply( const struct get_visible_region_reply
     fprintf( stderr, " top_win=%08x", req->top_win );
     dump_rectangle( ", top_rect=", &req->top_rect );
     dump_rectangle( ", win_rect=", &req->win_rect );
+    fprintf( stderr, ", paint_flags=%08x", req->paint_flags );
     fprintf( stderr, ", total_size=%u", req->total_size );
     dump_varargs_rectangles( ", region=", cur_size );
 }
diff --git a/server/window.c b/server/window.c
index fbe522a..e141f93 100644
--- a/server/window.c
+++ b/server/window.c
@@ -2434,6 +2434,7 @@ DECL_HANDLER(get_visible_region)
         reply->win_rect.right  = win->client_rect.right - win->client_rect.left;
         reply->win_rect.bottom = win->client_rect.bottom - win->client_rect.top;
     }
+    reply->paint_flags = win->paint_flags & PAINT_CLIENT_FLAGS;
 }
 
 




More information about the wine-cvs mailing list