Fix input config.

This commit is contained in:
2022-11-15 12:10:54 +08:00
parent 8b29cd2893
commit fcc9935325

View File

@@ -43,8 +43,10 @@ namespace Cryville.Crtr {
if (_use[proxy.Target] > 0) if (_use[proxy.Target] > 0)
throw new InvalidOperationException("Input already assigned"); throw new InvalidOperationException("Input already assigned");
if (proxy.Source != null) { if (proxy.Source != null) {
proxy.Source.Value.Handler.OnInput -= OnInput; // Prevent duplicated hooks, no exception will be thrown if (_judge != null) {
proxy.Source.Value.Handler.OnInput += OnInput; proxy.Source.Value.Handler.OnInput -= OnInput; // Prevent duplicated hooks, no exception will be thrown
proxy.Source.Value.Handler.OnInput += OnInput;
}
_tproxies.Add(proxy.Target, proxy); _tproxies.Add(proxy.Target, proxy);
_sproxies.Add(proxy.Source.Value, proxy); _sproxies.Add(proxy.Source.Value, proxy);
IncrementUseRecursive(name); IncrementUseRecursive(name);
@@ -53,7 +55,7 @@ namespace Cryville.Crtr {
} }
void Remove(InputProxyEntry proxy) { void Remove(InputProxyEntry proxy) {
var name = proxy.Target; var name = proxy.Target;
proxy.Source.Value.Handler.OnInput -= OnInput; if (_judge != null) _tproxies[name].Source.Value.Handler.OnInput -= OnInput;
_sproxies.Remove(_tproxies[name].Source.Value); _sproxies.Remove(_tproxies[name].Source.Value);
_tproxies.Remove(name); _tproxies.Remove(name);
DecrementUseRecursive(name); DecrementUseRecursive(name);