fix(essentials): Allows SubpageReferenceListSourceItem to deregister from room's CurrentSourceInfoChange event on Clear()

This commit is contained in:
Neil Dorin
2021-08-17 16:38:51 -06:00
parent 115a20d8e6
commit 5c02d72ed1

View File

@@ -14,6 +14,8 @@ namespace PepperDash.Essentials
{ {
public SourceListItem SourceItem { get; private set; } public SourceListItem SourceItem { get; private set; }
private IHasCurrentSourceInfoChange _room;
public SubpageReferenceListSourceItem(uint index, SubpageReferenceList owner, public SubpageReferenceListSourceItem(uint index, SubpageReferenceList owner,
SourceListItem sourceItem, Action<bool> routeAction) SourceListItem sourceItem, Action<bool> routeAction)
: base(index, owner) : base(index, owner)
@@ -25,6 +27,7 @@ namespace PepperDash.Essentials
public void RegisterForSourceChange(IHasCurrentSourceInfoChange room) public void RegisterForSourceChange(IHasCurrentSourceInfoChange room)
{ {
_room = room;
room.CurrentSourceChange -= room_CurrentSourceInfoChange; room.CurrentSourceChange -= room_CurrentSourceInfoChange;
room.CurrentSourceChange += room_CurrentSourceInfoChange; room.CurrentSourceChange += room_CurrentSourceInfoChange;
} }
@@ -44,6 +47,9 @@ namespace PepperDash.Essentials
{ {
Owner.BoolInputSig(Index, 1).UserObject = null; Owner.BoolInputSig(Index, 1).UserObject = null;
Owner.StringInputSig(Index, 1).StringValue = ""; Owner.StringInputSig(Index, 1).StringValue = "";
if(_room != null)
_room.CurrentSourceChange -= room_CurrentSourceInfoChange;
} }
/// <summary> /// <summary>