From d45450deaf72c68738b2740d9d4e7ff0f44e801e Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 6 Jun 2007 20:33:22 +0200 Subject: [PATCH] explorer.exe: Mark explorer as a system process. --- programs/explorer/desktop.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/programs/explorer/desktop.c b/programs/explorer/desktop.c index 0846dcda65b..7f2e23f0dc6 100644 --- a/programs/explorer/desktop.c +++ b/programs/explorer/desktop.c @@ -31,6 +31,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(explorer); #define DESKTOP_CLASS_ATOM ((LPCWSTR)MAKEINTATOM(32769)) #define DESKTOP_ALL_ACCESS 0x01ff +extern HANDLE __wine_make_process_system(void); + static BOOL using_root; /* window procedure for the desktop window */ @@ -198,6 +200,10 @@ void manage_desktop( char *arg ) /* run the desktop message loop */ if (hwnd) { + /* we don't use the system process event, the server + * posts a WM_CLOSE when the last desktop user is gone */ + CloseHandle( __wine_make_process_system() ); + WINE_TRACE( "desktop message loop starting on hwnd %p\n", hwnd ); while (GetMessageW( &msg, 0, 0, 0 )) DispatchMessageW( &msg ); WINE_TRACE( "desktop message loop exiting for hwnd %p\n", hwnd );