From: Jocelyn Turcotte Date: Wed, 11 Jan 2017 17:17:27 +0000 (+0100) Subject: shell/macOS: Make sure the root folder's cache is cleared on disconnect X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~892 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=cb5cfb8cf6e4d3f90b68145153b5816dff3de155;p=nextcloud-desktop.git shell/macOS: Make sure the root folder's cache is cleared on disconnect The SocketAPI now only sends status pushes for paths requested by the shell. We have to make sure that Finder doesn't just show the entry from its cache after a reconnect. --- diff --git a/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.m b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.m index a86f9485b..065be2e2f 100644 --- a/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.m +++ b/shell_integration/MacOSX/OwnCloudFinderSync/FinderSyncExt/FinderSync.m @@ -155,9 +155,13 @@ { _shareMenuTitle = nil; + [_registeredDirectories removeAllObjects]; + // For some reason the FIFinderSync cache doesn't seem to be cleared for the root item when + // we reset the directoryURLs (seen on macOS 10.12 at least). + // First setting it to the FS root and then setting it to nil seems to work around the issue. + [FIFinderSyncController defaultController].directoryURLs = [NSSet setWithObject:[NSURL fileURLWithPath:@"/"]]; // This will tell Finder that this extension isn't attached to any directory // until we can reconnect to the sync client. - [_registeredDirectories removeAllObjects]; [FIFinderSyncController defaultController].directoryURLs = nil; }