Skip to content

Conversation

gerhardol
Copy link
Member

Remove the no longer working hooking preparing for #12111
This should have no effect on the invariant theme in v5.

Proposed changes

Remove the EasyHook handling that was required for theming in GE v3.x with .NET framework v4. This solution has has not worked since GE v4, that use .NET core (.net6 and later). .net9 has experimental support for dark mode that can enable the use of dark mode.

The activation of hooking was disabled by the define SUPPORT_THEME_HOOKS. A number of unused methods was used too,
as well as the EasyHooks submodule.

The .net9 solution do not allow customization of system colors, so overrides were removed from the themes.
As the darksilver theme mostly changed system colors, it was removed.

The invariant theme system colors is required by theming to adjust colors and still requires the system colors.
The color for MenuHighlight was corrected in the invaiant theme. ButtonFace, ButtonHighlight, ButtonShadow was assumed to be duplicates of Control* colors, this was not corrrect and the handling was removed.

The workaround for dark header was removed too.

Test methodology

Visual

Merge strategy

I agree that the maintainer squash merge this PR (if the commit message is clear).


✒️ I contribute this code under The Developer Certificate of Origin.

Remove the EasyHook handling that was required for theming in
GE v3.x with .NET framework v4. This solution has has not
worked since GE v4, that use .NET core (.net6 and later).
.net9 has experimental support for dark mode that can enable
the use of dark mode.

The activation of hooking was disabled by the define SUPPORT_THEME_HOOKS.
A number of unused methods was used too,
as well as the EasyHooks submodule.

The .net9 solution do not allow customization of system colors,
so overrides were removed from the themes.
As the darksilver theme mostly changed system colors, it was removed.

The invariant theme system colors is required by theming to adjust
colors and still requires the system colors.
The color for MenuHighlight was corrected in the invaiant theme.
ButtonFace, ButtonHighlight, ButtonShadow was assumed to be
duplicates of Control* colors, this was not corrrect and the handling
was removed.

The workaround for dark header was removed too.
Copy link
Member

@mstv mstv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks sensible

As the darksilver theme mostly changed system colors, it was removed.

Does GE gracefully fall back to another theme?

@gerhardol
Copy link
Member Author

As the darksilver theme mostly changed system colors, it was removed.

Does GE gracefully fall back to another theme?

Default (invariant, what is in the code) is used if the theme cannot be loaded.
However, the darksilver as well as dark theme has not been included with GE 4/5, so no change here.

@gerhardol gerhardol merged commit 28d5fb1 into gitextensions:master Jan 10, 2025
4 checks passed
@gerhardol gerhardol deleted the feature/remove-hooking branch January 10, 2025 20:40
@mstv mstv added this to the v5.3 milestone Jan 30, 2025
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.

3 participants