Virtualpads - fix readonly notion, no longer crashy when no pads are set up
This commit is contained in:
parent
20ab331404
commit
f3cac5deff
|
@ -15,6 +15,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
public partial class VirtualPad : UserControl
|
||||
{
|
||||
private PadSchema _schema;
|
||||
private bool _readOnly = false;
|
||||
|
||||
private List<IVirtualPadControl> 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));
|
||||
|
|
|
@ -13,6 +13,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
private int _defaultWidth;
|
||||
private int _defaultHeight;
|
||||
private bool _readOnly = false;
|
||||
|
||||
private List<VirtualPad> 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)
|
||||
|
|
Loading…
Reference in New Issue