user32: When destroying a window, preserve the first WM_QUIT message that was posted to it.
diff --git a/server/queue.c b/server/queue.c
index 03b0e92..3fa546e 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -1918,7 +1918,15 @@
LIST_FOR_EACH_SAFE( ptr, next, &queue->msg_list[i] )
{
struct message *msg = LIST_ENTRY( ptr, struct message, entry );
- if (msg->win == win) remove_queue_message( queue, msg, i );
+ if (msg->win == win)
+ {
+ if (msg->msg == WM_QUIT && !queue->quit_message)
+ {
+ queue->quit_message = 1;
+ queue->exit_code = msg->wparam;
+ }
+ remove_queue_message( queue, msg, i );
+ }
}
}