Browse Source

Merge pull request #2314 from MarchingCube/feature/fix-style-subscriptions

Fix Style subscriptions not being removed at all.
pull/2321/head
Steven Kirk 8 years ago
committed by GitHub
parent
commit
ab348683c9
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      src/Avalonia.Styling/Styling/Style.cs

6
src/Avalonia.Styling/Styling/Style.cs

@ -143,6 +143,7 @@ namespace Avalonia.Styling
} }
controlSubscriptions.Add(subs); controlSubscriptions.Add(subs);
controlSubscriptions.Add(Disposable.Create(() => Subscriptions.Remove(subs)));
Subscriptions.Add(subs); Subscriptions.Add(subs);
} }
@ -159,8 +160,9 @@ namespace Avalonia.Styling
var sub = setter.Apply(this, control, null); var sub = setter.Apply(this, control, null);
subs.Add(sub); subs.Add(sub);
} }
controlSubscriptions.Add(subs); controlSubscriptions.Add(subs);
controlSubscriptions.Add(Disposable.Create(() => Subscriptions.Remove(subs)));
Subscriptions.Add(subs); Subscriptions.Add(subs);
return true; return true;
} }
@ -223,7 +225,7 @@ namespace Avalonia.Styling
{ {
if (!_applied.TryGetValue(control, out var subscriptions)) if (!_applied.TryGetValue(control, out var subscriptions))
{ {
subscriptions = new CompositeDisposable(2); subscriptions = new CompositeDisposable(3);
subscriptions.Add(control.StyleDetach.Subscribe(ControlDetach)); subscriptions.Add(control.StyleDetach.Subscribe(ControlDetach));
_applied.Add(control, subscriptions); _applied.Add(control, subscriptions);
} }

Loading…
Cancel
Save