Skip to content

Commit 7739d60

Browse files
committed
Refactor modifier config and default to Control
1 parent a01616c commit 7739d60

2 files changed

Lines changed: 42 additions & 47 deletions

File tree

src/SecondaryClick/Gestures/Modifiers/ModifiersGestureRecognizer.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,42 +10,42 @@ namespace SecondaryClick.Gestures.Modifiers;
1010
/// Allows users to trigger a right-click by holding modifier keys (Alt, Ctrl, Shift) and clicking the left mouse button.
1111
/// Uses a low-level mouse/keyboard hook to intercept and process user input.
1212
/// </summary>
13-
public sealed class ModifiersGestureRecognizer : IGestureRecognizer
13+
public sealed partial class ModifiersGestureRecognizer : IGestureRecognizer
1414
{
1515
/// <summary>
1616
/// Simulates keyboard and mouse input events.
1717
/// </summary>
1818
private readonly InputSimulator _simulator = new();
19-
19+
2020
/// <summary>
2121
/// Low-level keyboard and mouse hook for global input capture.
2222
/// </summary>
2323
private IKeyboardMouseEvents? _hook;
24-
24+
2525
/// <summary>
2626
/// Flag indicating whether a right mouse button down event has been injected by this recognizer.
2727
/// </summary>
2828
private bool _rightDownInjected;
29-
29+
3030
/// <summary>
3131
/// Flag to prevent re-entrant input processing of injected events.
3232
/// </summary>
3333
private bool _suppressInjected;
34-
34+
3535
/// <summary>
3636
/// Flag indicating whether this recognizer is currently enabled.
3737
/// </summary>
3838
private bool _enabled;
39-
39+
4040
/// <summary>
4141
/// Flag indicating whether the Alt key should be suppressed from appearing as a key event.
4242
/// </summary>
4343
private bool _suppressAltKey;
44-
44+
4545
/// <summary>
46-
/// The modifier keys that must be held to activate the gesture (default: Alt).
46+
/// The modifier keys that must be held to activate the gesture (default: Control).
4747
/// </summary>
48-
private GestureModifiers _activationModifiers = GestureModifiers.Alt;
48+
private GestureModifiers _activationModifiers = GestureModifiers.Control;
4949

5050
/// <summary>
5151
/// Gets or sets the modifier keys that must be held to activate the secondary click gesture.

src/SecondaryClick/TrayIconManager.cs

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -49,27 +49,7 @@ private TrayIconManager()
4949
{
5050
_recognizerHolder = new();
5151
_isTrayIconHidden = Configurations.HideTrayIcon.Get();
52-
53-
if (Configurations.ModifiersAlt.Get())
54-
{
55-
_recognizerHolder.ModifiersRecognizer.ActivationModifiers
56-
|= Gestures.Modifiers.GestureModifiers.Alt;
57-
}
58-
if (Configurations.ModifiersControl.Get())
59-
{
60-
_recognizerHolder.ModifiersRecognizer.ActivationModifiers
61-
|= Gestures.Modifiers.GestureModifiers.Control;
62-
}
63-
if (Configurations.ModifiersShift.Get())
64-
{
65-
_recognizerHolder.ModifiersRecognizer.ActivationModifiers
66-
|= Gestures.Modifiers.GestureModifiers.Shift;
67-
}
68-
_recognizerHolder.ModifiersRecognizer.SetEnabled(
69-
Configurations.ModifiersAlt.Get()
70-
| Configurations.ModifiersControl.Get()
71-
| Configurations.ModifiersShift.Get()
72-
);
52+
ApplyModifierConfiguration();
7353

7454
_icon = new TrayIconHost
7555
{
@@ -142,50 +122,40 @@ private TrayIconManager()
142122
Configurations.ModifiersAlt.Set(false);
143123
Configurations.ModifiersControl.Set(false);
144124
Configurations.ModifiersShift.Set(false);
145-
146-
GetInstance()._recognizerHolder.ModifiersRecognizer.SetEnabled(false);
125+
GetInstance().ApplyModifierConfiguration();
147126
},
148127
},
149128
new TrayMenuItem
150129
{
151130
Tag = nameof(SH.ModifiersAlt),
152131
Header = SH.ModifiersAlt,
153-
IsChecked = true,
132+
IsChecked = Configurations.ModifiersAlt.Get(),
154133
Command = static _ =>
155134
{
156135
Configurations.ModifiersAlt.Set(!Configurations.ModifiersAlt.Get());
157-
158-
GetInstance()._recognizerHolder.ModifiersRecognizer.ActivationModifiers
159-
|= Gestures.Modifiers.GestureModifiers.Alt;
160-
GetInstance()._recognizerHolder.ModifiersRecognizer.SetEnabled(true);
136+
GetInstance().ApplyModifierConfiguration();
161137
},
162138
},
163139
new TrayMenuItem
164140
{
165141
Tag = nameof(SH.ModifiersControl),
166142
Header = SH.ModifiersControl,
167-
IsChecked = false,
143+
IsChecked = Configurations.ModifiersControl.Get(),
168144
Command = static _ =>
169145
{
170146
Configurations.ModifiersControl.Set(!Configurations.ModifiersControl.Get());
171-
172-
GetInstance()._recognizerHolder.ModifiersRecognizer.ActivationModifiers
173-
|= Gestures.Modifiers.GestureModifiers.Control;
174-
GetInstance()._recognizerHolder.ModifiersRecognizer.SetEnabled(true);
147+
GetInstance().ApplyModifierConfiguration();
175148
},
176149
},
177150
new TrayMenuItem
178151
{
179152
Tag = nameof(SH.ModifiersShift),
180153
Header = SH.ModifiersShift,
181-
IsChecked = false,
154+
IsChecked = Configurations.ModifiersShift.Get(),
182155
Command = static _ =>
183156
{
184157
Configurations.ModifiersShift.Set(!Configurations.ModifiersShift.Get());
185-
186-
GetInstance()._recognizerHolder.ModifiersRecognizer.ActivationModifiers
187-
|= Gestures.Modifiers.GestureModifiers.Shift;
188-
GetInstance()._recognizerHolder.ModifiersRecognizer.SetEnabled(true);
158+
GetInstance().ApplyModifierConfiguration();
189159
},
190160
},
191161
]
@@ -275,6 +245,31 @@ private void ApplyTrayIconVisibilityFromConfiguration()
275245
_icon.IsVisible = !_isTrayIconHidden;
276246
}
277247

248+
private void ApplyModifierConfiguration()
249+
{
250+
Gestures.Modifiers.GestureModifiers activationModifiers = Gestures.Modifiers.GestureModifiers.None;
251+
252+
if (Configurations.ModifiersAlt.Get())
253+
{
254+
activationModifiers |= Gestures.Modifiers.GestureModifiers.Alt;
255+
}
256+
257+
if (Configurations.ModifiersControl.Get())
258+
{
259+
activationModifiers |= Gestures.Modifiers.GestureModifiers.Control;
260+
}
261+
262+
if (Configurations.ModifiersShift.Get())
263+
{
264+
activationModifiers |= Gestures.Modifiers.GestureModifiers.Shift;
265+
}
266+
267+
_recognizerHolder.ModifiersRecognizer.ActivationModifiers = activationModifiers;
268+
_recognizerHolder.ModifiersRecognizer.SetEnabled(
269+
activationModifiers != Gestures.Modifiers.GestureModifiers.None
270+
);
271+
}
272+
278273
private void OnTrayIconVisibilityWatcherTick(object? sender, EventArgs e)
279274
{
280275
bool isHiddenInRegistry = Configurations.HideTrayIcon.Get();

0 commit comments

Comments
 (0)