From 8e8cf4a8fe9bbc1cea8b9fb26e4f01180978e275 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 4 Aug 2013 20:51:49 +0000 Subject: [PATCH] HOtkeys dialog - focus on first input widget when changing tabs. However does not work on load because winform events suck --- .../config/NewHotkeyWindow.Designer.cs | 2 ++ BizHawk.MultiClient/config/NewHotkeyWindow.cs | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/BizHawk.MultiClient/config/NewHotkeyWindow.Designer.cs b/BizHawk.MultiClient/config/NewHotkeyWindow.Designer.cs index ccbef1570b..ddfc83d45a 100644 --- a/BizHawk.MultiClient/config/NewHotkeyWindow.Designer.cs +++ b/BizHawk.MultiClient/config/NewHotkeyWindow.Designer.cs @@ -72,6 +72,8 @@ this.HotkeyTabControl.SelectedIndex = 0; this.HotkeyTabControl.Size = new System.Drawing.Size(729, 394); this.HotkeyTabControl.TabIndex = 102; + this.HotkeyTabControl.SelectedIndexChanged += new System.EventHandler(this.HotkeyTabControl_SelectedIndexChanged); + this.HotkeyTabControl.Enter += new System.EventHandler(this.HotkeyTabControl_Enter); // // tabPage1 // diff --git a/BizHawk.MultiClient/config/NewHotkeyWindow.cs b/BizHawk.MultiClient/config/NewHotkeyWindow.cs index e4588f3291..8717888782 100644 --- a/BizHawk.MultiClient/config/NewHotkeyWindow.cs +++ b/BizHawk.MultiClient/config/NewHotkeyWindow.cs @@ -20,6 +20,7 @@ namespace BizHawk.MultiClient { AutoTabCheckBox.Checked = Global.Config.HotkeyConfigAutoTab; DoTabs(); + DoFocus(); } private void IDB_CANCEL_Click(object sender, EventArgs e) @@ -144,5 +145,30 @@ namespace BizHawk.MultiClient w.AutoTab = AutoTabCheckBox.Checked; } } + + private void HotkeyTabControl_SelectedIndexChanged(object sender, EventArgs e) + { + DoFocus(); + } + + private void DoFocus() + { + if (HotkeyTabControl.SelectedTab != null) + { + foreach (Control c in HotkeyTabControl.SelectedTab.Controls) + { + if (c is InputWidget) + { + (c as InputWidget).Focus(); + return; + } + } + } + } + + private void HotkeyTabControl_Enter(object sender, EventArgs e) + { + DoFocus(); + } } }