Store a pointer to the client-side class structure in the server and
return it on create_window and destroy_class.
Only create a single instance of the desktop class for the whole
session.
Added some missing locking in the client-side class management.
diff --git a/server/trace.c b/server/trace.c
index 97ec3f5..2069700 100644
--- a/server/trace.c
+++ b/server/trace.c
@@ -2096,13 +2096,14 @@
fprintf( stderr, " parent=%p,", req->parent );
fprintf( stderr, " owner=%p,", req->owner );
fprintf( stderr, " atom=%04x,", req->atom );
- fprintf( stderr, " instance=%p,", req->instance );
- fprintf( stderr, " extra=%d", req->extra );
+ fprintf( stderr, " instance=%p", req->instance );
}
static void dump_create_window_reply( const struct create_window_reply *req )
{
- fprintf( stderr, " handle=%p", req->handle );
+ fprintf( stderr, " handle=%p,", req->handle );
+ fprintf( stderr, " extra=%d,", req->extra );
+ fprintf( stderr, " class_ptr=%p", req->class_ptr );
}
static void dump_link_window_request( const struct link_window_request *req )
@@ -2511,7 +2512,8 @@
fprintf( stderr, " style=%08x,", req->style );
fprintf( stderr, " instance=%p,", req->instance );
fprintf( stderr, " extra=%d,", req->extra );
- fprintf( stderr, " win_extra=%d", req->win_extra );
+ fprintf( stderr, " win_extra=%d,", req->win_extra );
+ fprintf( stderr, " client_ptr=%p", req->client_ptr );
}
static void dump_destroy_class_request( const struct destroy_class_request *req )
@@ -2520,6 +2522,11 @@
fprintf( stderr, " instance=%p", req->instance );
}
+static void dump_destroy_class_reply( const struct destroy_class_reply *req )
+{
+ fprintf( stderr, " client_ptr=%p", req->client_ptr );
+}
+
static void dump_set_class_info_request( const struct set_class_info_request *req )
{
fprintf( stderr, " window=%p,", req->window );
@@ -2952,7 +2959,7 @@
(dump_func)0,
(dump_func)dump_get_next_hook_reply,
(dump_func)0,
- (dump_func)0,
+ (dump_func)dump_destroy_class_reply,
(dump_func)dump_set_class_info_reply,
(dump_func)dump_set_clipboard_info_reply,
(dump_func)dump_open_token_reply,