diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs index 16f1280d8c..7a8f73e159 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualPad.cs @@ -15,6 +15,7 @@ namespace BizHawk.Client.EmuHawk public partial class VirtualPad : UserControl { private PadSchema _schema; + private bool _readOnly = false; private List PadControls { @@ -30,7 +31,13 @@ namespace BizHawk.Client.EmuHawk { get { - return PadControls.First().ReadOnly; // Shortcut logic, assume all controls are in sync + return _readOnly; + } + + set + { + _readOnly = value; + PadControls.ForEach(c => c.ReadOnly = value); } } @@ -99,16 +106,6 @@ namespace BizHawk.Client.EmuHawk PadControls.ForEach(p => p.Clear()); } - public void ToggleReadOnly() - { - PadControls.ForEach(p => p.ReadOnly ^= true); - } - - public void SetReadOnly(bool readOnly) - { - PadControls.ForEach(p => p.ReadOnly = readOnly); - } - public void Set(IController controller) { PadControls.ForEach(c => c.Set(controller)); diff --git a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadsTool.cs b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadsTool.cs index c110565b5c..21efd57fec 100644 --- a/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadsTool.cs +++ b/BizHawk.Client.EmuHawk/tools/VirtualPads/VirtualpadsTool.cs @@ -13,6 +13,7 @@ namespace BizHawk.Client.EmuHawk { private int _defaultWidth; private int _defaultHeight; + private bool _readOnly = false; private List Pads { @@ -24,11 +25,18 @@ namespace BizHawk.Client.EmuHawk } } - private bool Readonly + + public bool Readonly { get { - return Pads.First().ReadOnly; // Shortcut logic, assume all controls are in sync + return _readOnly; + } + + set + { + _readOnly = value; + Pads.ForEach(p => p.ReadOnly = value); } } @@ -129,12 +137,12 @@ namespace BizHawk.Client.EmuHawk if (Global.MovieSession.Movie.IsPlaying && !Global.MovieSession.Movie.IsFinished && Global.Emulator.Frame > 0) { - Pads.ForEach(p => p.SetReadOnly(true)); + Readonly = true; Pads.ForEach(p => p.Set(Global.MovieSession.CurrentInput)); } else { - Pads.ForEach(p => p.SetReadOnly(false)); + Readonly = false; } if (!Readonly && !Global.Config.VirtualPadSticky)