Skip to content

Commit 6050b4d

Browse files
authored
Editor Preferences Keybind Modifier Fixes (#3604)
- Can now use modifier keys alongside the Mouse Wheel (lets you do CTRL+MWHEELUP, CTRL+MWHEELDOWN, ect) - Keybinds are now captured on release instead of on press (Previously pressing CTRL+D would just capture CTRL so you'd have to hold CTRL before capturing and then press D)
1 parent 57d29e6 commit 6050b4d

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

game/addons/tools/Code/Widgets/KeyBind.cs

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,9 @@ protected override void OnWheel( WheelEvent e )
4545

4646
if ( IsTrapping )
4747
{
48-
SetValue( e.Delta > 0 ? "MWHEELUP" : "MWHEELDOWN" );
48+
var keyStr = e.Delta > 0 ? "MWHEELUP" : "MWHEELDOWN";
49+
keyStr = AddModifiers( keyStr, e.KeyboardModifiers );
50+
SetValue( keyStr );
4951
e.Accept();
5052
}
5153
}
@@ -77,18 +79,22 @@ protected override void OnKeyPress( KeyEvent e )
7779

7880
return;
7981
}
82+
}
8083

81-
var keyStr = GetKeyName( e );
82-
83-
if ( AllowModifiers )
84-
{
85-
if ( (keyStr.Contains( "CTRL" ) || keyStr.Contains( "ALT" ) || keyStr.Contains( "SHIFT" )) ) return;
86-
if ( e.KeyboardModifiers.HasFlag( KeyboardModifiers.Shift ) ) keyStr = "SHIFT+" + keyStr;
87-
if ( e.KeyboardModifiers.HasFlag( KeyboardModifiers.Alt ) ) keyStr = "ALT+" + keyStr;
88-
if ( e.KeyboardModifiers.HasFlag( KeyboardModifiers.Ctrl ) ) keyStr = "CTRL+" + keyStr;
89-
}
90-
91-
SetValue( keyStr );
84+
string AddModifiers( string keyStr, KeyboardModifiers modifiers )
85+
{
86+
if ( !AllowModifiers )
87+
return keyStr;
88+
89+
if ( (keyStr.Contains( "CTRL" ) || keyStr.Contains( "ALT" ) || keyStr.Contains( "SHIFT" )) )
90+
return keyStr;
91+
if ( modifiers.HasFlag( KeyboardModifiers.Shift ) )
92+
keyStr = "SHIFT+" + keyStr;
93+
if ( modifiers.HasFlag( KeyboardModifiers.Alt ) )
94+
keyStr = "ALT+" + keyStr;
95+
if ( modifiers.HasFlag( KeyboardModifiers.Ctrl ) )
96+
keyStr = "CTRL+" + keyStr;
97+
return keyStr;
9298
}
9399

94100
protected override void OnKeyRelease( KeyEvent e )
@@ -97,12 +103,9 @@ protected override void OnKeyRelease( KeyEvent e )
97103

98104
if ( !IsTrapping ) return;
99105

100-
if ( AllowModifiers )
101-
{
102-
var keystr = GetKeyName( e );
103-
if ( keystr.Contains( "CTRL" ) || keystr.Contains( "ALT" ) || keystr.Contains( "SHIFT" ) )
104-
SetValue( keystr );
105-
}
106+
var keyStr = GetKeyName( e );
107+
keyStr = AddModifiers( keyStr, e.KeyboardModifiers );
108+
SetValue( keyStr );
106109
}
107110

108111
protected virtual string GetKeyName( KeyEvent e )

0 commit comments

Comments
 (0)