diff --git a/Launcher2/Gui/Screens/ClassiCubeServersScreen.cs b/Launcher2/Gui/Screens/ClassiCubeServersScreen.cs index 616a74b4a..ee5f60e90 100644 --- a/Launcher2/Gui/Screens/ClassiCubeServersScreen.cs +++ b/Launcher2/Gui/Screens/ClassiCubeServersScreen.cs @@ -43,9 +43,12 @@ namespace Launcher2 { protected override void KeyDown( object sender, KeyboardKeyEventArgs e ) { LauncherTableWidget table = (LauncherTableWidget)widgets[tableIndex]; if( e.Key == Key.Enter ) { - if( table.Count == 1 && String.IsNullOrEmpty( Get( 3 ) ) ) + if( table.Count == 1 && String.IsNullOrEmpty( Get( 3 ) ) ) { widgets[3].Text = table.usedEntries[0].Hash; - ConnectToServer( 0, 0 ); + ConnectToServer( 0, 0 ); + } else { + base.KeyDown( sender, e ); + } } else if( e.Key == Key.Up ) { table.SetSelected( table.SelectedIndex - 1 ); table.NeedRedraw(); diff --git a/Launcher2/Gui/Screens/LauncherInputScreen.cs b/Launcher2/Gui/Screens/LauncherInputScreen.cs index f8b2fb3ca..e98297a7b 100644 --- a/Launcher2/Gui/Screens/LauncherInputScreen.cs +++ b/Launcher2/Gui/Screens/LauncherInputScreen.cs @@ -1,8 +1,8 @@ using System; using System.Drawing; +using ClassicalSharp; using OpenTK; using OpenTK.Input; -using ClassicalSharp; namespace Launcher2 { @@ -31,7 +31,8 @@ namespace Launcher2 { OnRemovedChar(); } } else if( e.Key == Key.Enter && enterIndex >= 0 ) { - LauncherWidget widget = widgets[enterIndex]; + LauncherWidget widget = selectedWidget != null ? + selectedWidget : widgets[enterIndex]; if( widget.OnClick != null ) widget.OnClick( 0, 0 ); } else if( e.Key == Key.Tab ) { @@ -83,7 +84,7 @@ namespace Launcher2 { protected string Get() { return Get( widgetIndex ); } - protected string Get( int index ) { + protected string Get( int index ) { LauncherWidget widget = widgets[index]; return widget == null ? "" : widget.Text; } @@ -128,7 +129,7 @@ namespace Launcher2 { widgets[widgetIndex++] = widget; } - protected void MakeInput( string text, int width, Anchor horAnchor, Anchor verAnchor, + protected void MakeInput( string text, int width, Anchor horAnchor, Anchor verAnchor, bool password, int x, int y, int maxChars ) { if( widgets[widgetIndex] != null ) { LauncherInputWidget input = (LauncherInputWidget)widgets[widgetIndex]; diff --git a/Launcher2/Gui/Screens/MainScreen.cs b/Launcher2/Gui/Screens/MainScreen.cs index 29d47662f..df720330e 100644 --- a/Launcher2/Gui/Screens/MainScreen.cs +++ b/Launcher2/Gui/Screens/MainScreen.cs @@ -27,10 +27,14 @@ namespace Launcher2 { } void KeyDown( object sender, KeyboardKeyEventArgs e ) { - if( e.Key == Key.Tab ) + if( e.Key == Key.Tab ) { HandleTab(); - else if( e.Key == Key.Enter ) - widgets[0].OnClick( 0, 0 ); + } else if( e.Key == Key.Enter ) { + LauncherWidget widget = selectedWidget != null ? + selectedWidget : widgets[0]; + if( widget.OnClick != null ) + widget.OnClick( 0, 0 ); + } } void KeyUp( object sender, KeyboardKeyEventArgs e ) { diff --git a/Launcher2/Gui/Screens/UpdatesScreen.cs b/Launcher2/Gui/Screens/UpdatesScreen.cs index 529dcac4a..687ca8428 100644 --- a/Launcher2/Gui/Screens/UpdatesScreen.cs +++ b/Launcher2/Gui/Screens/UpdatesScreen.cs @@ -1,9 +1,9 @@ using System; using System.Drawing; -using System.Globalization; using System.IO; using ClassicalSharp; using Launcher2.Updater; +using OpenTK.Input; namespace Launcher2 { @@ -25,10 +25,26 @@ namespace Launcher2 { public override void Init() { checkTask = new UpdateCheckTask(); checkTask.CheckForUpdatesAsync(); + game.Window.Keyboard.KeyDown += KeyDown; + game.Window.Keyboard.KeyUp += KeyUp; Resize(); } + + void KeyDown( object sender, KeyboardKeyEventArgs e ) { + if( e.Key == Key.Tab ) { + HandleTab(); + } else if( e.Key == Key.Enter ) { + LauncherWidget widget = selectedWidget; + if( widget != null && widget.OnClick != null ) + widget.OnClick( 0, 0 ); + } + } - + void KeyUp( object sender, KeyboardKeyEventArgs e ) { + if( e.Key == Key.Tab ) + tabDown = false; + } + Build dev, stable; public override void Tick() { if( checkTask != null && !checkTask.Working ) { @@ -107,6 +123,8 @@ namespace Launcher2 { } public override void Dispose() { + game.Window.Keyboard.KeyDown -= KeyDown; + game.Window.Keyboard.KeyUp -= KeyUp; game.Window.Mouse.Move -= MouseMove; game.Window.Mouse.ButtonDown -= MouseButtonDown;