From b9de0fb2dd4b0b933a7558450fa3651e0d249b61 Mon Sep 17 00:00:00 2001 From: Michael Starke Date: Wed, 14 Nov 2018 10:28:59 +0100 Subject: [PATCH] Correctly update document state when group selection has changed --- MacPass/MPOutlineViewController.m | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/MacPass/MPOutlineViewController.m b/MacPass/MPOutlineViewController.m index 0318faa0..cf00cba6 100644 --- a/MacPass/MPOutlineViewController.m +++ b/MacPass/MPOutlineViewController.m @@ -310,7 +310,15 @@ NSString *const _MPOutlinveViewHeaderViewIdentifier = @"HeaderCell"; - (void)outlineViewSelectionDidChange:(NSNotification *)notification { MPDocument *document = self.windowController.document; NSArray *groups = [self currentTargetGroups]; - document.tree.metaData.lastSelectedGroup = (groups.count == 1 ? groups.firstObject.uuid : [NSUUID kpk_nullUUID]); + /* only update state if binding is set up to prevent resetting on first show */ + if(_bindingEstablished) { + NSUUID *oldValue = document.tree.metaData.lastSelectedGroup; + document.tree.metaData.lastSelectedGroup = (groups.count == 1 ? groups.firstObject.uuid : [NSUUID kpk_nullUUID]); + NSUUID *newVlaue = document.tree.metaData.lastSelectedGroup; + if(![oldValue isEqual:newVlaue]) { + [document updateChangeCount:NSChangeDone|NSChangeDiscardable]; + } + } document.selectedGroups = groups; }