[WINLOGON]

- Call DispatchSAS when the screen saver is started by a WM_LOGONNOTIFY message.
- Lock the workstation after the screen saver was terminated.

svn path=/trunk/; revision=58359
This commit is contained in:
Eric Kohl 2013-02-23 19:48:22 +00:00
parent 9ec74f1b1b
commit d09a5ff14a

View file

@ -23,8 +23,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(winlogon);
#define HK_CTRL_ALT_DEL 0 #define HK_CTRL_ALT_DEL 0
#define HK_CTRL_SHIFT_ESC 1 #define HK_CTRL_SHIFT_ESC 1
static BOOL inScrn = FALSE;
/* FUNCTIONS ****************************************************************/ /* FUNCTIONS ****************************************************************/
static BOOL static BOOL
@ -940,9 +938,9 @@ DispatchSAS(
} }
else else
{ {
StartScreenSaver(Session);
if (bSecure) if (bSecure)
DoGenericAction(Session, WLX_SAS_ACTION_LOCK_WKSTA); DoGenericAction(Session, WLX_SAS_ACTION_LOCK_WKSTA);
StartScreenSaver(Session);
} }
} }
else if (dwSasType == WLX_SAS_TYPE_SCRNSVR_ACTIVITY) else if (dwSasType == WLX_SAS_TYPE_SCRNSVR_ACTIVITY)
@ -1154,24 +1152,7 @@ SASWindowProc(
} }
case LN_START_SCREENSAVE: case LN_START_SCREENSAVE:
{ {
BOOL bSecure = FALSE; DispatchSAS(Session, WLX_SAS_TYPE_SCRNSVR_TIMEOUT);
if (inScrn)
break;
inScrn = TRUE;
// lParam 1 == Secure
if (lParam)
{
if (Session->Gina.Functions.WlxScreenSaverNotify(Session->Gina.Context, &bSecure))
{
if (bSecure) DoGenericAction(Session, WLX_SAS_ACTION_LOCK_WKSTA);
}
}
StartScreenSaver(Session);
inScrn = FALSE;
break; break;
} }
case LN_LOCK_WORKSTATION: case LN_LOCK_WORKSTATION: