# HG changeset patch # User Augie Fackler # Date 1308858909 18000 # Node ID ec4ba216ddefe54d40c8712af6f8ca647340a066 # Parent 925cab23d7d5e6ce19e5b4d888def151adc86dd5 progress: make progress bar a singleton to avoid double-progress ui bugs This helps issue2698 a little, but isn't a complete fix, since generators still can produce some weird progress bar switching. diff -r 925cab23d7d5 -r ec4ba216ddef hgext/progress.py --- a/hgext/progress.py Thu Jun 02 14:33:01 2011 -0500 +++ b/hgext/progress.py Thu Jun 23 14:55:09 2011 -0500 @@ -251,7 +251,10 @@ self.lastprint = now self.show(now, topic, *self.topicstates[topic]) +_singleton = None + def uisetup(ui): + global _singleton class progressui(ui.__class__): _progbar = None @@ -278,7 +281,9 @@ # we instantiate one globally shared progress bar to avoid # competing progress bars when multiple UI objects get created if not progressui._progbar: - progressui._progbar = progbar(ui) + if _singleton is None: + _singleton = progbar(ui) + progressui._progbar = _singleton def reposetup(ui, repo): uisetup(repo.ui)