diff --git a/src/GitHub.App/Controllers/UIController.cs b/src/GitHub.App/Controllers/UIController.cs index e297c3e36d..c4ebfa4792 100644 --- a/src/GitHub.App/Controllers/UIController.cs +++ b/src/GitHub.App/Controllers/UIController.cs @@ -160,22 +160,22 @@ void SetupView(UIViewType viewType, IView view) var dvm = factory.GetViewModel(UIViewType.TwoFactor); disposables.Add(dvm); var twofa = dvm.Value; - twofa.WhenAny(x => x.IsShowing, x => x.Value) + disposables.Add(twofa.WhenAny(x => x.IsShowing, x => x.Value) .Where(x => x) .ObserveOn(RxApp.MainThreadScheduler) - .Subscribe(_ => Fire(Trigger.Next)); + .Subscribe(_ => Fire(Trigger.Next))); - view.Done + disposables.Add(view.Done .ObserveOn(RxApp.MainThreadScheduler) - .Subscribe(_ => Fire(Trigger.Finish)); + .Subscribe(_ => Fire(Trigger.Finish))); } else if (viewType != UIViewType.TwoFactor) { - view.Done + disposables.Add(view.Done .ObserveOn(RxApp.MainThreadScheduler) - .Subscribe(_ => Fire(Trigger.Next)); + .Subscribe(_ => Fire(Trigger.Next))); } - view.Cancel.Subscribe(_ => Stop()); + disposables.Add(view.Cancel.Subscribe(_ => Stop())); } IView CreateViewAndViewModel(UIViewType viewType) diff --git a/src/GitHub.UI.Reactive/Controls/SimpleViewUserControl.cs b/src/GitHub.UI.Reactive/Controls/SimpleViewUserControl.cs index 8bb5b79ee8..8121302377 100644 --- a/src/GitHub.UI.Reactive/Controls/SimpleViewUserControl.cs +++ b/src/GitHub.UI.Reactive/Controls/SimpleViewUserControl.cs @@ -66,6 +66,8 @@ protected virtual void Dispose(bool disposing) if (disposed) return; close.Dispose(); + cancel.Dispose(); + isBusy.Dispose(); disposed = true; } }