[MouseHighlighter]Add always-on pointer (#27186)

* [MouseHighlighter]Add always pointer

Make color pick UI ARGB
Delete Opacity setting

* Fix opacity and color

Fix "always color" incorrectly initialized
Revert default opacity to 65%, which was unintentionally lowered to 25% when
changing to percent

* Fix crash when opening MouseUtils settings page

Migration code was bugged, made malformed json and led to settings page crash.

* Implement migration in module side
This commit is contained in:
hayatogh
2023-07-26 23:48:00 +09:00
committed by GitHub
parent a99b2e0bc0
commit a71411d931
12 changed files with 331 additions and 74 deletions

View File

@@ -71,12 +71,14 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
MouseHighlighterSettingsConfig = mouseHighlighterSettingsRepository.SettingsConfig;
string leftClickColor = MouseHighlighterSettingsConfig.Properties.LeftButtonClickColor.Value;
_highlighterLeftButtonClickColor = !string.IsNullOrEmpty(leftClickColor) ? leftClickColor : "#FFFF00";
_highlighterLeftButtonClickColor = !string.IsNullOrEmpty(leftClickColor) ? leftClickColor : "#a6FFFF00";
string rightClickColor = MouseHighlighterSettingsConfig.Properties.RightButtonClickColor.Value;
_highlighterRightButtonClickColor = !string.IsNullOrEmpty(rightClickColor) ? rightClickColor : "#0000FF";
_highlighterRightButtonClickColor = !string.IsNullOrEmpty(rightClickColor) ? rightClickColor : "#a60000FF";
string alwaysColor = MouseHighlighterSettingsConfig.Properties.AlwaysColor.Value;
_highlighterAlwaysColor = !string.IsNullOrEmpty(alwaysColor) ? alwaysColor : "#00FF0000";
_highlighterOpacity = MouseHighlighterSettingsConfig.Properties.HighlightOpacity.Value;
_highlighterRadius = MouseHighlighterSettingsConfig.Properties.HighlightRadius.Value;
_highlightFadeDelayMs = MouseHighlighterSettingsConfig.Properties.HighlightFadeDelayMs.Value;
_highlightFadeDurationMs = MouseHighlighterSettingsConfig.Properties.HighlightFadeDurationMs.Value;
@@ -445,7 +447,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
set
{
value = SettingsUtilities.ToRGBHex(value);
value = SettingsUtilities.ToARGBHex(value);
if (!value.Equals(_highlighterLeftButtonClickColor, StringComparison.OrdinalIgnoreCase))
{
_highlighterLeftButtonClickColor = value;
@@ -464,7 +466,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
set
{
value = SettingsUtilities.ToRGBHex(value);
value = SettingsUtilities.ToARGBHex(value);
if (!value.Equals(_highlighterRightButtonClickColor, StringComparison.OrdinalIgnoreCase))
{
_highlighterRightButtonClickColor = value;
@@ -474,19 +476,20 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
}
}
public int MouseHighlighterOpacity
public string MouseHighlighterAlwaysColor
{
get
{
return _highlighterOpacity;
return _highlighterAlwaysColor;
}
set
{
if (value != _highlighterOpacity)
value = SettingsUtilities.ToARGBHex(value);
if (!value.Equals(_highlighterAlwaysColor, StringComparison.OrdinalIgnoreCase))
{
_highlighterOpacity = value;
MouseHighlighterSettingsConfig.Properties.HighlightOpacity.Value = value;
_highlighterAlwaysColor = value;
MouseHighlighterSettingsConfig.Properties.AlwaysColor.Value = value;
NotifyMouseHighlighterPropertyChanged();
}
}
@@ -889,7 +892,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels
private bool _isMouseHighlighterEnabled;
private string _highlighterLeftButtonClickColor;
private string _highlighterRightButtonClickColor;
private int _highlighterOpacity;
private string _highlighterAlwaysColor;
private int _highlighterRadius;
private int _highlightFadeDelayMs;
private int _highlightFadeDurationMs;