Beginnings of support for window stations and desktops.
diff --git a/server/thread.c b/server/thread.c
index 2d7a61b..9d69bf1 100644
--- a/server/thread.c
+++ b/server/thread.c
@@ -137,6 +137,7 @@
thread->priority = THREAD_PRIORITY_NORMAL;
thread->affinity = 1;
thread->suspend = 0;
+ thread->desktop = 0;
thread->creation_time = time(NULL);
thread->exit_time = 0;
@@ -213,6 +214,7 @@
free_msg_queue( thread );
cleanup_clipboard_thread(thread);
destroy_thread_windows( thread );
+ close_thread_desktop( thread );
for (i = 0; i < MAX_INFLIGHT_FDS; i++)
{
if (thread->inflight[i].client != -1)
@@ -226,6 +228,7 @@
thread->request_fd = NULL;
thread->reply_fd = NULL;
thread->wait_fd = NULL;
+ thread->desktop = 0;
if (thread == booting_thread) /* killing booting thread */
{
@@ -831,6 +834,7 @@
if ((thread = create_thread( request_fd, current->process )))
{
if (req->suspend) thread->suspend++;
+ thread->desktop = current->desktop;
reply->tid = get_thread_id( thread );
if ((reply->handle = alloc_handle( current->process, thread,
THREAD_ALL_ACCESS, req->inherit )))