Moved visible region calculation to the server.
diff --git a/server/trace.c b/server/trace.c index a24098e..8a85720 100644 --- a/server/trace.c +++ b/server/trace.c
@@ -375,6 +375,21 @@ remove_data( size ); } +static void dump_varargs_rectangles( size_t size ) +{ + const rectangle_t *rect = cur_data; + size_t len = size / sizeof(*rect); + + fputc( '{', stderr ); + while (len > 0) + { + dump_rectangle( rect++ ); + if (--len) fputc( ',', stderr ); + } + fputc( '}', stderr ); + remove_data( size ); +} + static void dump_varargs_properties( size_t size ) { const property_data_t *prop = cur_data; @@ -2161,6 +2176,20 @@ fprintf( stderr, " y=%d", req->y ); } +static void dump_get_visible_region_request( const struct get_visible_region_request *req ) +{ + fprintf( stderr, " window=%p,", req->window ); + fprintf( stderr, " top_win=%p,", req->top_win ); + fprintf( stderr, " flags=%08x", req->flags ); +} + +static void dump_get_visible_region_reply( const struct get_visible_region_reply *req ) +{ + fprintf( stderr, " total_size=%d,", req->total_size ); + fprintf( stderr, " region=" ); + dump_varargs_rectangles( cur_size ); +} + static void dump_set_window_property_request( const struct set_window_property_request *req ) { fprintf( stderr, " window=%p,", req->window ); @@ -2630,6 +2659,7 @@ (dump_func)dump_set_window_text_request, (dump_func)dump_inc_window_paint_count_request, (dump_func)dump_get_windows_offset_request, + (dump_func)dump_get_visible_region_request, (dump_func)dump_set_window_property_request, (dump_func)dump_remove_window_property_request, (dump_func)dump_get_window_property_request, @@ -2806,6 +2836,7 @@ (dump_func)0, (dump_func)0, (dump_func)dump_get_windows_offset_reply, + (dump_func)dump_get_visible_region_reply, (dump_func)0, (dump_func)dump_remove_window_property_reply, (dump_func)dump_get_window_property_reply, @@ -2982,6 +3013,7 @@ "set_window_text", "inc_window_paint_count", "get_windows_offset", + "get_visible_region", "set_window_property", "remove_window_property", "get_window_property",