[2/3] wineboot: Unlink the desktop after ending a session.
Vincent Povirk
madewokherd at gmail.com
Fri Jan 24 15:12:39 CST 2014
-------------- next part --------------
From 4313345847fad4cd0ff1a9dec4efcf766d50510c Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Fri, 24 Jan 2014 13:58:58 -0600
Subject: [PATCH 2/4] wineboot: Unlink the desktop after ending a session.
---
programs/wineboot/wineboot.c | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/programs/wineboot/wineboot.c b/programs/wineboot/wineboot.c
index a20b4e1..bff0431 100644
--- a/programs/wineboot/wineboot.c
+++ b/programs/wineboot/wineboot.c
@@ -1116,6 +1116,20 @@ done:
return ret;
}
+static BOOL wine_unlink_desktop(HDESK desktop)
+{
+ BOOL (*CDECL __wine_unlink_desktop)(HDESK desktop) = NULL;
+
+ __wine_unlink_desktop = (void*)GetProcAddress(
+ GetModuleHandleA("user32"),
+ "__wine_unlink_desktop");
+
+ if (__wine_unlink_desktop != NULL)
+ return __wine_unlink_desktop(desktop);
+
+ return FALSE;
+}
+
static void usage(void)
{
WINE_MESSAGE( "Usage: wineboot [options]\n" );
@@ -1212,7 +1226,13 @@ int main( int argc, char *argv[] )
{
if (!shutdown_all_desktops( force )) return 1;
}
- else if (!shutdown_close_windows( force )) return 1;
+ else
+ {
+ if (!shutdown_close_windows( force )) return 1;
+
+ if (shutdown && !wine_unlink_desktop( GetThreadDesktop( GetCurrentThreadId() ) ))
+ return 1;
+ }
}
if (kill) kill_processes( shutdown );
--
1.8.1.2
More information about the wine-patches
mailing list