https://git.reactos.org/?p=reactos.git;a=commitdiff;h=209439a5aed328b59cd52…
commit 209439a5aed328b59cd52c0c54901a7ca5033af8
Author: Carl J. Bialorucki <cbialo2(a)outlook.com>
AuthorDate: Thu Jun 29 09:50:43 2023 -0600
Commit: GitHub <noreply(a)github.com>
CommitDate: Thu Jun 29 18:50:43 2023 +0300
[BROWSEUI] Add status bar view state persistence (#5366)
- Use `HKCU\Software\Microsoft\Internet Explorer\Main\StatusBarOther` registry key for
the setting persistence.
- Set its value to 1 when the status bar is visible, and to 0 when the status bar is
hidden.
- Query it when the file browser is initialized to set the correct view state for the
status bar.
- Set the default state of the status bar to hidden if the registry key does not
exist, matching the behavior of Windows Server 2003.
CORE-19010
---
dll/win32/browseui/shellbrowser.cpp | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/dll/win32/browseui/shellbrowser.cpp b/dll/win32/browseui/shellbrowser.cpp
index b12fc20e82d..3aec6c38272 100644
--- a/dll/win32/browseui/shellbrowser.cpp
+++ b/dll/win32/browseui/shellbrowser.cpp
@@ -709,7 +709,10 @@ CShellBrowser::CShellBrowser()
fCurrentShellViewWindow = NULL;
fCurrentDirectoryPIDL = NULL;
fStatusBar = NULL;
- fStatusBarVisible = true;
+ fStatusBarVisible = SHRegGetBoolUSValueW(L"Software\\Microsoft\\Internet
Explorer\\Main",
+ L"StatusBarOther",
+ FALSE,
+ FALSE);
fCurrentMenuBar = NULL;
fHistoryObject = NULL;
fHistoryStream = NULL;
@@ -788,8 +791,6 @@ HRESULT CShellBrowser::Initialize()
fStatusBar = CreateWindow(STATUSCLASSNAMEW, NULL, WS_CHILD | WS_VISIBLE |
WS_CLIPSIBLINGS |
SBT_NOBORDERS | SBT_TOOLTIPS, 0, 0, 500, 20, m_hWnd, (HMENU)0xa001,
_AtlBaseModule.GetModuleInstance(), 0);
- fStatusBarVisible = true;
-
ShowWindow(SW_SHOWNORMAL);
UpdateWindow();
@@ -3663,6 +3664,15 @@ LRESULT CShellBrowser::OnToggleStatusBarVisible(WORD wNotifyCode,
WORD wID, HWND
::ShowWindow(fStatusBar, fStatusBarVisible ? SW_SHOW : SW_HIDE);
RepositionBars();
}
+
+ DWORD dwStatusBarVisible = fStatusBarVisible;
+ SHRegSetUSValueW(L"Software\\Microsoft\\Internet Explorer\\Main",
+ L"StatusBarOther",
+ REG_DWORD,
+ &dwStatusBarVisible,
+ sizeof(dwStatusBarVisible),
+ SHREGSET_FORCE_HKCU);
+
return 0;
}