From: Eric Kohl Date: Wed, 8 May 2019 20:56:55 +0000 (+0200) Subject: [POWERCFG] Do not re-initialize all paged directly when the hibernate file setting... X-Git-Tag: 0.4.14-dev~1020 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=cc13842ad40d073b8b3967013f57edc85cc6598d [POWERCFG] Do not re-initialize all paged directly when the hibernate file setting changes. Re-initialize the pages on PSN_SETACTIVE instead. --- diff --git a/dll/cpl/powercfg/advanced.c b/dll/cpl/powercfg/advanced.c index da43d67f82f..914afdb6c6f 100644 --- a/dll/cpl/powercfg/advanced.c +++ b/dll/cpl/powercfg/advanced.c @@ -11,8 +11,6 @@ #include "powercfg.h" -HWND hAdv = 0; - static POWER_ACTION g_SystemBatteries[3]; static POWER_ACTION g_PowerButton[5]; static POWER_ACTION g_SleepButton[5]; @@ -52,7 +50,7 @@ AddItem(HWND hDlgCtrl, INT ResourceId, LPARAM lParam, POWER_ACTION * lpAction) if (LoadString(hApplet, ResourceId, szBuffer, MAX_PATH) < MAX_PATH) { - Index = SendMessage(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)szBuffer); + Index = SendMessage(hDlgCtrl, CB_INSERTSTRING, -1, (LPARAM)szBuffer); if (Index != CB_ERR) { SendMessage(hDlgCtrl, CB_SETITEMDATA, (WPARAM)Index, lParam); @@ -298,7 +296,8 @@ ShowCurrentPowerActionPolicies(HWND hwndDlg) } VOID -Adv_InitDialog(VOID) +Adv_InitDialog( + HWND hwndDlg) { HWND hList1; HWND hList2; @@ -318,13 +317,13 @@ Adv_InitDialog(VOID) else gGPP.user.GlobalFlags &= ~EnableSysTrayBatteryMeter; - CheckDlgButton(hAdv, + CheckDlgButton(hwndDlg, IDC_SYSTRAYBATTERYMETER, bEnabled ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hAdv, + CheckDlgButton(hwndDlg, IDC_PASSWORDLOGON, gGPP.user.GlobalFlags & EnablePasswordLogon ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(hAdv, + CheckDlgButton(hwndDlg, IDC_VIDEODIMDISPLAY, gGPP.user.GlobalFlags & EnableVideoDimDisplay ? BST_CHECKED : BST_UNCHECKED); @@ -336,7 +335,7 @@ Adv_InitDialog(VOID) bHibernate = spc.HiberFilePresent; bShutdown = spc.SystemS5; - hList1 = GetDlgItem(hAdv, IDC_LIDCLOSE); + hList1 = GetDlgItem(hwndDlg, IDC_LIDCLOSE); SendMessage(hList1, CB_RESETCONTENT, 0, 0); memset(g_SystemBatteries, 0x0, sizeof(g_SystemBatteries)); @@ -356,12 +355,12 @@ Adv_InitDialog(VOID) } else { - ShowWindow(GetDlgItem(hAdv, IDC_VIDEODIMDISPLAY), FALSE); - ShowWindow(GetDlgItem(hAdv, IDC_SLIDCLOSE), FALSE); + ShowWindow(GetDlgItem(hwndDlg, IDC_VIDEODIMDISPLAY), FALSE); + ShowWindow(GetDlgItem(hwndDlg, IDC_SLIDCLOSE), FALSE); ShowWindow(hList1, FALSE); } - hList2 = GetDlgItem(hAdv, IDC_POWERBUTTON); + hList2 = GetDlgItem(hwndDlg, IDC_POWERBUTTON); SendMessage(hList2, CB_RESETCONTENT, 0, 0); memset(g_PowerButton, 0x0, sizeof(g_PowerButton)); @@ -387,11 +386,11 @@ Adv_InitDialog(VOID) } else { - ShowWindow(GetDlgItem(hAdv, IDC_SPOWERBUTTON), FALSE); + ShowWindow(GetDlgItem(hwndDlg, IDC_SPOWERBUTTON), FALSE); ShowWindow(hList2, FALSE); } - hList3 = GetDlgItem(hAdv, IDC_SLEEPBUTTON); + hList3 = GetDlgItem(hwndDlg, IDC_SLEEPBUTTON); SendMessage(hList3, CB_RESETCONTENT, 0, 0); memset(g_SleepButton, 0x0, sizeof(g_SleepButton)); @@ -417,13 +416,13 @@ Adv_InitDialog(VOID) } else { - ShowWindow(GetDlgItem(hAdv, IDC_SSLEEPBUTTON), FALSE); + ShowWindow(GetDlgItem(hwndDlg, IDC_SSLEEPBUTTON), FALSE); ShowWindow(hList3, FALSE); } if (ReadGlobalPwrPolicy(&gGPP)) { - ShowCurrentPowerActionPolicies(hAdv); + ShowCurrentPowerActionPolicies(hwndDlg); } } @@ -490,17 +489,17 @@ Adv_SaveData(HWND hwndDlg) if (!IsBatteryUsed()) { - SaveCurrentPowerActionPolicy(GetDlgItem(hwndDlg, IDC_POWERBUTTON), &gGPP.user.PowerButtonAc); #if 0 SaveCurrentPowerActionPolicy(GetDlgItem(hwndDlg, IDC_LIDCLOSE), &gGPP.user.LidCloseAc); - SaveCurrentPowerActionPolicy(GetDlgItem(hwndDlg, IDC_SLEEPBUTTON), &gGPP.user.SleepButtonAc); #endif + SaveCurrentPowerActionPolicy(GetDlgItem(hwndDlg, IDC_POWERBUTTON), &gGPP.user.PowerButtonAc); + SaveCurrentPowerActionPolicy(GetDlgItem(hwndDlg, IDC_SLEEPBUTTON), &gGPP.user.SleepButtonAc); } else { #if 0 - SaveCurrentPowerActionPolicy(GetDlgItem(hwndDlg, IDC_POWERBUTTON), &gGPP.user.PowerButtonDc); SaveCurrentPowerActionPolicy(GetDlgItem(hwndDlg, IDC_LIDCLOSE), &gGPP.user.LidCloseDc); + SaveCurrentPowerActionPolicy(GetDlgItem(hwndDlg, IDC_POWERBUTTON), &gGPP.user.PowerButtonDc); SaveCurrentPowerActionPolicy(GetDlgItem(hwndDlg, IDC_SLEEPBUTTON), &gGPP.user.SleepButtonDc); #endif } @@ -512,7 +511,7 @@ Adv_SaveData(HWND hwndDlg) SetSystrayPowerIconState(bSystrayBatteryMeter); - Adv_InitDialog(); +// Adv_InitDialog(hwndDlg); } /* Property page dialog callback */ @@ -525,8 +524,7 @@ AdvancedDlgProc(HWND hwndDlg, switch (uMsg) { case WM_INITDIALOG: - hAdv = hwndDlg; - Adv_InitDialog(); + Adv_InitDialog(hwndDlg); return TRUE; case WM_COMMAND: @@ -553,14 +551,17 @@ AdvancedDlgProc(HWND hwndDlg, break; case WM_NOTIFY: - { - LPNMHDR lpnm = (LPNMHDR)lParam; - if (lpnm->code == (UINT)PSN_APPLY) + switch (((LPNMHDR)lParam)->code) { - Adv_SaveData(hwndDlg); + case PSN_APPLY: + Adv_SaveData(hwndDlg); + return TRUE; + + case PSN_SETACTIVE: + Adv_InitDialog(hwndDlg); + return TRUE; } - return TRUE; - } + break; } return FALSE; diff --git a/dll/cpl/powercfg/hibernate.c b/dll/cpl/powercfg/hibernate.c index b82cf094500..02e774e784e 100644 --- a/dll/cpl/powercfg/hibernate.c +++ b/dll/cpl/powercfg/hibernate.c @@ -11,10 +11,6 @@ #include "powercfg.h" -//BOOLEAN Pos_InitData(); -//void Adv_InitDialog(); - - static VOID Hib_InitDialog(HWND hwndDlg) { @@ -75,9 +71,6 @@ Hib_SaveData(HWND hwndDlg) if (CallNtPowerInformation(SystemReserveHiberFile, &bHibernate, sizeof(bHibernate), NULL, 0) == STATUS_SUCCESS) { - // FIXME: Do not call these functions directly! Post a message to the other pages instead! - // Pos_InitData(); - // Adv_InitDialog(); Hib_InitDialog(hwndDlg); return TRUE; } @@ -111,13 +104,11 @@ HibernateDlgProc(HWND hwndDlg, break; case WM_NOTIFY: - { - LPNMHDR lpnm = (LPNMHDR)lParam; - if (lpnm->code == (UINT)PSN_APPLY) + if (((LPNMHDR)lParam)->code == (UINT)PSN_APPLY) { return Hib_SaveData(hwndDlg); } - } + break; } return FALSE; diff --git a/dll/cpl/powercfg/powershemes.c b/dll/cpl/powercfg/powershemes.c index 56c9ae1f3f7..1e164d9e85e 100644 --- a/dll/cpl/powercfg/powershemes.c +++ b/dll/cpl/powercfg/powershemes.c @@ -276,23 +276,21 @@ Pos_InitData( ShowWindow(GetDlgItem(hwndDlg, IDC_SDC), SW_HIDE); ShowWindow(GetDlgItem(hwndDlg, IDC_MONITORDCLIST), SW_HIDE); ShowWindow(GetDlgItem(hwndDlg, IDC_DISKDCLIST), SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg, IDC_STANDBYDCLIST), SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg, IDC_HIBERNATEDCLIST), SW_HIDE); } - if (!(spc.SystemS1 || spc.SystemS2 || spc.SystemS3)) - { - ShowWindow(GetDlgItem(hwndDlg, IDC_STANDBY), SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg, IDC_STANDBYACLIST), SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg, IDC_STANDBYDCLIST), SW_HIDE); - } + ShowWindow(GetDlgItem(hwndDlg, IDC_STANDBY), + (spc.SystemS1 || spc.SystemS2 || spc.SystemS3) ? SW_SHOW : SW_HIDE); + ShowWindow(GetDlgItem(hwndDlg, IDC_STANDBYACLIST), + (spc.SystemS1 || spc.SystemS2 || spc.SystemS3) ? SW_SHOW : SW_HIDE); + ShowWindow(GetDlgItem(hwndDlg, IDC_STANDBYDCLIST), + ((spc.SystemS1 || spc.SystemS2 || spc.SystemS3) && spc.SystemBatteriesPresent) ? SW_SHOW : SW_HIDE); - if (!spc.HiberFilePresent) - { - ShowWindow(GetDlgItem(hwndDlg, IDC_HIBERNATE), SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg, IDC_HIBERNATEACLIST), SW_HIDE); - ShowWindow(GetDlgItem(hwndDlg, IDC_HIBERNATEDCLIST), SW_HIDE); - } + ShowWindow(GetDlgItem(hwndDlg, IDC_HIBERNATE), + (spc.HiberFilePresent) ? SW_SHOW : SW_HIDE); + ShowWindow(GetDlgItem(hwndDlg, IDC_HIBERNATEACLIST), + (spc.HiberFilePresent) ? SW_SHOW : SW_HIDE); + ShowWindow(GetDlgItem(hwndDlg, IDC_HIBERNATEDCLIST), + (spc.HiberFilePresent && spc.SystemBatteriesPresent) ? SW_SHOW : SW_HIDE); return TRUE; } @@ -955,13 +953,15 @@ PowerSchemesDlgProc( break; case WM_NOTIFY: + switch (((LPNMHDR)lParam)->code) { - LPNMHDR lpnm = (LPNMHDR)lParam; - if (lpnm->code == (UINT)PSN_APPLY) - { + case PSN_APPLY: Pos_SaveData(hwndDlg, pPageData); - } - return TRUE; + return TRUE; + + case PSN_SETACTIVE: + Pos_InitData(hwndDlg); + return TRUE; } break; }