libxrdp: started adding new(color) cursor support

This commit is contained in:
Jay Sorg 2013-03-12 20:04:18 -07:00
parent cf5646c472
commit a47a3cee1a
2 changed files with 19 additions and 3 deletions

View File

@ -1,7 +1,7 @@
/** /**
* xrdp: A Remote Desktop Protocol server. * xrdp: A Remote Desktop Protocol server.
* *
* Copyright (C) Jay Sorg 2004-2012 * Copyright (C) Jay Sorg 2004-2013
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -87,6 +87,7 @@ struct xrdp_client_info
char jpeg_prop[64]; char jpeg_prop[64];
int v3_codec_id; int v3_codec_id;
int use_bulk_comp; int use_bulk_comp;
int pointer_flags; /* 0 color, 1 new */
}; };
#endif #endif

View File

@ -1,7 +1,7 @@
/** /**
* xrdp: A Remote Desktop Protocol server. * xrdp: A Remote Desktop Protocol server.
* *
* Copyright (C) Jay Sorg 2004-2012 * Copyright (C) Jay Sorg 2004-2013
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -958,11 +958,26 @@ xrdp_process_capset_pointercache(struct xrdp_rdp *self, struct stream *s,
int len) int len)
{ {
int i; int i;
int colorPointerFlag;
in_uint8s(s, 2); /* color pointer */ in_uint16_le(s, colorPointerFlag);
self->client_info.pointer_flags = colorPointerFlag;
in_uint16_le(s, i); in_uint16_le(s, i);
i = MIN(i, 32); i = MIN(i, 32);
self->client_info.pointer_cache_entries = i; self->client_info.pointer_cache_entries = i;
if (colorPointerFlag & 1)
{
g_writeln("xrdp_process_capset_pointercache: client supports "
"new(color) cursor");
in_uint16_le(s, i);
i = MIN(i, 32);
self->client_info.pointer_cache_entries = i;
}
else
{
g_writeln("xrdp_process_capset_pointercache: client does not support "
"new(color) cursor");
}
return 0; return 0;
} }