Skip to content

Open-Shell #42

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 288 commits into
base: master
Choose a base branch
from
Open

Open-Shell #42

wants to merge 288 commits into from

Conversation

solyoma
Copy link

@solyoma solyoma commented Jan 13, 2021

Want to look at the problem with missing jump list for Visual Studio and others.

coddec and others added 30 commits July 28, 2018 12:05
Fixed issue related to the cleanup of the accessibility COM objects that
may cause Explorer to crash.

Submitted by Ivo Beltchev.

Fixes #53
Added link to latest nightly build
Prettified links on main page.
* Rebrand to Open-Shell

* Slight installer branding improvement
- Icon link
- Home page link
- AppVeyor status badge
- Latest nightly link
* Fix naming inconsistencies

'Menu' vs 'StartMenu'

* Installer: Remove Facebook link

* Installer: Remove PayPal donate remnants

* OpenShellReadme: Remove info about product version
One can easily find Readme shortcut in Open-Shell's start menu folder.
Copy data/settings from legacy Classic Shell if we don't have any yet.
Plus C++ standard conformance fixes.
Latest version of ClassicShell was 4.3.1. There is no reason to display
any warning about very old versions (< 2.0.0).

Besides, this will remove dependency on version.dll which could be misused
for DLL hijacking attack.

Fixes #72
There is no need for password protected beta versions.
…e a bit easier)

During upgrade from ClassicShell we'll try to terminate
ClassicStartMenu.exe as well. So that installer won't complain about files
being in use.
* Fix ITA translation

Fixed Italian translation; Updated header

* Fix ITA trans
Changed links to github for Update.cpp and Update.rc.
Commit 1a5f62a added possibility to hide Lock/Sleep/Hibernate buttons if
they were disabled in system power settings.

Unfortunately this didn't work for Lock button.

To fix the behavior we have to add lock command to `g_StdOptions` array
and then all the checks introduced in 1a5f62a will apply properly.

 #173
`Open-Shell` needs to adjust itself after OS upgrade. It seems that
`StartMenuHelper` registration is lost after such upgrade:

http://www.classicshell.net/forum/viewtopic.php?f=7&t=8082#p34821

To fix this registration, administrator rights are required (means user
interaction, UAC).

While this is acceptable in consumer environment, it is typically not
desired in business environment where users typically doesn't have
administrator rights.

This patch allows to run `Open-Shell` in silent upgrade mode that will:
* check if OS version changed (otherwise end immediately)
* perform OS upgrade tasks without any user interraction

Such mode can be then used to create scheduled task that will run this
silent upgrade check on every boot with system rights:

`schtasks /Create /RU "NT AUTHORITY\SYSTEM" /SC ONSTART /TN "Open-Shell OS updgrade check" /TR "%ProgramFiles%\Open-Shell\StartMenu.exe -upgrade -silent"`

 #167
Add download button as requested by some users.
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`
Changed the homepage text and link on the settings dialog to link to the Open-Shell home page.
ge0rdi and others added 30 commits August 24, 2023 20:55
It may happen that during `InitStartMenuDLL` execution some component
posts a message that is then intercepted by (still active) `HookInject`
that will call `InitStartMenuDLL` again (and everything will repeat).

To prevent such endless recursion during initialization, we will make
sure that `InitStartMenuDLL` will be executed just once.
Update the old blurry start menu previews to a more modern pixel-perfect ones that resemble the new default immersive skin.
There is no need to limit it just to Win10+ as it works well also on
older Windows.

#1866
It uses metro colors so it works only on Win8+.

#1866 (comment)
Windows 11 22H2 introduced new touch-optimized taskbar for devices with
touch screen.

It seems that in this mode taskbar window size is bigger than actual
taskbar on screen. There is region defined for the window that covers
actually displayed portion of the window.

We should account for that region (if present) when obtaining taskbar
window dimensions.

More info about how to enable/disable touch taskbar:
https://www.elevenforum.com/t/turn-on-or-off-tablet-optimized-taskbar-in-windows-11.5133/
It seems that AllSystemSettings file name changed since 24H2.
We will look for new file first and then fall-back to original one.

Fixes #2033.
It seems that secondary taskbars handle try button positioning
correctly. So there is no need for this workaround.

Original change was introduced in 674a486 due to #1232 issue.
* Add ARM64 build configurations to projects

* StartMenu: add ARM64 support

* Add support for IAT hooking on ARM64

* Add ARM64 support to Classic IE

* Add ARM64 support to installer

NB: WiX 3.14.0.3910 or higher is required to create the MSI

* Revert whitespace change

* Separate x86/x64 and ARM64 installers

* Change suffix of ARM64 binaries

* Put also ARM64 MSI to final installer

* Fix sln

* Build some DLLs as ARM64X

These are meant to be loaded to both x64 and ARM64 processes.
We will compile them as ARM64X (when building for ARM64).
That way they will contain both x64 and ARM64 code paths.

https://learn.microsoft.com/en-us/windows/arm/arm64x-pe

* Make sure x64 installer cannot be installed on ARM64

In case if somebody manually tries to install x64 MSI on ARM64.
This is not supported/working scenario.

---------

Co-authored-by: ge0rdi <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.