Items can be pinned to directories that require administative privileges
(such as Open-Shell's default installation directory), so long as users
take ownership of the pinned folder. Also adds a command to Open-Shell's
context menu that opens the current pinned folder.
Adds general support for directory-based settings by creating a new
setting type called TYPE_DIRECTORY which uses a new bool added to
BrowseLinkHelper, called bFoldersOnly. START_MENU_PINNED_ROOT
has been removed, and all instances of both it and BrowseLinkHelper
have been adjusted accordingly. To create your own directory-based
settings, use CSetting::TYPE_DIRECTORY. Empty directory paths are
reset to their default value as they can cause unexpected behavior.
`Open-Shell` hooks `SHFillRectClr` (ordinal 197) API from `shlwapi.dll`
in order to be able to customize taskbar.
The API is hooked even if taskbar customization is disabled in `Open-Shell` (default).
`WindowBlinds` hooks the same API so this is causing clashes between
both programs.
In fact `Open-Shell` hooks later which makes `WindowBlinds` hook to be
completely ignored.
The solution would be to hook only if taskbar customization is enabled.
This way `Open-Shell` should be more compatible with other customization
tools in default state.
Fixes#433.
In several cases we don't want menu(s) to close when an action on menu was
done. For example on drag-n-drop or menu item deletion (where confirmation
dialog is shown).
In such situations `s_bPreventClosing` was set to true (and then back to
false when closing was allowed again).
Though original code honored this variable only in certain situations and
typically (at least on Win10) menus were hidden/closed despite of it.
This patch changes the behavior and menus(s) are not closed when
`s_bPreventClosing` is set to true.
Basically now menu(s) stay visible until there is an action that changes
active window.
Following functionality was also removed because it is not needed now:
* CMenuContainer::HideTemp
* COwnerWindow::OnClear
WM_CLEAR was sent to the window only by already removed `HideTemp`
* Fix naming inconsistencies
'Menu' vs 'StartMenu'
* Installer: Remove Facebook link
* Installer: Remove PayPal donate remnants
* OpenShellReadme: Remove info about product version