BOOL bReasonUI;
BOOL bFriendlyUI;
BOOL bIsButtonHot[NUMBER_OF_BUTTONS];
+ BOOL bIsDialogModal;
WNDPROC OldButtonProc;
} SHUTDOWN_DLG_CONTEXT, *PSHUTDOWN_DLG_CONTEXT;
if (!pContext->bCloseDlg)
{
pContext->bCloseDlg = TRUE;
- DestroyWindow(hDlg);
- PostQuitMessage(0);
+
+ if (pContext->bIsDialogModal)
+ {
+ EndDialog(hDlg, 0);
+ }
+ else
+ {
+ DestroyWindow(hDlg);
+ PostQuitMessage(0);
+ }
}
}
return FALSE;
case WM_CLOSE:
pContext->bCloseDlg = TRUE;
- DestroyWindow(hDlg);
- PostQuitMessage(IDCANCEL);
+
+ if (pContext->bIsDialogModal)
+ {
+ EndDialog(hDlg, IDCANCEL);
+ }
+ else
+ {
+ DestroyWindow(hDlg);
+ PostQuitMessage(IDCANCEL);
+ }
break;
case WM_COMMAND:
case IDCANCEL:
case IDHELP:
pContext->bCloseDlg = TRUE;
- DestroyWindow(hDlg);
- PostQuitMessage(LOWORD(wParam));
+
+ if (pContext->bIsDialogModal)
+ {
+ EndDialog(hDlg, LOWORD(wParam));
+ }
+ else
+ {
+ DestroyWindow(hDlg);
+ PostQuitMessage(LOWORD(wParam));
+ }
break;
case IDC_SHUTDOWN_ACTION:
if (pgContext->hWlx && pgContext->pWlxFuncs && !Context.bFriendlyUI)
{
+ Context.bIsDialogModal = TRUE;
ret = pgContext->pWlxFuncs->WlxDialogBoxParam(pgContext->hWlx,
pgContext->hDllInstance,
MAKEINTRESOURCEW(Context.bReasonUI ? IDD_SHUTDOWN_REASON : IDD_SHUTDOWN),
}
}
+ Context.bIsDialogModal = FALSE;
hDlg = CreateDialogParamW(pgContext->hDllInstance,
MAKEINTRESOURCEW(Context.bReasonUI ? IDD_SHUTDOWN_REASON : ShutdownDialogId),
hwndDlg,