Robert Shearman : server: Don' t clear the QS_POSTMESSAGE flag if there is a pending quit message.

Alexandre Julliard julliard at wine.codeweavers.com
Tue May 23 06:12:05 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 22bd7a3d0108e78f035bb19a74b2bada01598e57
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=22bd7a3d0108e78f035bb19a74b2bada01598e57

Author: Robert Shearman <rob at codeweavers.com>
Date:   Mon May 22 22:16:53 2006 +0100

server: Don't clear the QS_POSTMESSAGE flag if there is a pending quit message.

---

 server/queue.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/server/queue.c b/server/queue.c
index 45caefe..407f06f 100644
--- a/server/queue.c
+++ b/server/queue.c
@@ -482,7 +482,8 @@ static void remove_queue_message( struct
         if (list_empty( &queue->msg_list[kind] )) clear_queue_bits( queue, QS_SENDMESSAGE );
         break;
     case POST_MESSAGE:
-        if (list_empty( &queue->msg_list[kind] )) clear_queue_bits( queue, QS_POSTMESSAGE|QS_ALLPOSTMESSAGE );
+        if (list_empty( &queue->msg_list[kind] ) && !queue->quit_message)
+            clear_queue_bits( queue, QS_POSTMESSAGE|QS_ALLPOSTMESSAGE );
         break;
     }
     free_message( msg );
@@ -702,8 +703,11 @@ static int get_quit_message( struct msg_
         reply->info   = 0;
 
         if (flags & GET_MSG_REMOVE)
+        {
             queue->quit_message = 0;
-
+            if (list_empty( &queue->msg_list[POST_MESSAGE] ))
+                clear_queue_bits( queue, QS_POSTMESSAGE|QS_ALLPOSTMESSAGE );
+        }
         return 1;
     }
     else




More information about the wine-cvs mailing list