diff --git a/lib/model/folder.go b/lib/model/folder.go index f0d30b403..e33d9596b 100644 --- a/lib/model/folder.go +++ b/lib/model/folder.go @@ -188,8 +188,12 @@ func (f *folder) Serve(ctx context.Context) error { case <-f.pullScheduled: if f.PullerDelayS > 0 { // Wait for incoming updates to settle before doing the - // actual pull - f.setState(FolderSyncWaiting) + // actual pull. Only set the state to SyncWaiting if we have + // reason to believe there is something to sync, to avoid + // unnecessary flashing in the GUI. + if needCount, err := f.db.CountNeed(f.folderID, protocol.LocalDeviceID); err == nil && needCount.TotalItems() > 0 { + f.setState(FolderSyncWaiting) + } pullTimer.Reset(time.Duration(float64(time.Second) * f.PullerDelayS)) } else { _, err = f.pull()