diff options
author | Mike Krüger <mkrueger@Mikes-iMac.fritz.box> | 2019-06-24 14:33:03 +0300 |
---|---|---|
committer | Mike Krüger <mkrueger@Mikes-iMac.fritz.box> | 2019-06-24 14:34:40 +0300 |
commit | 228d4879880935f93410915d8ad8c6c156edf505 (patch) | |
tree | dbcc33f9c2e55834f11a41e6947160be831c4168 /Mono.Addins.Setup | |
parent | 4c98412e1fba75bb73af82b81f65ce86846caf38 (diff) |
Fixes VSTS Bug 935390: MonoDevelop.Ide.Gui.GLibLogging+CriticalGtkException exception in Gtk.ProgressBar.gtk_progress_bar_set_fraction()
https://devdiv.visualstudio.com/DevDiv/_workitems/edit/935390
Diffstat (limited to 'Mono.Addins.Setup')
-rw-r--r-- | Mono.Addins.Setup/Mono.Addins.Setup.ProgressMonitoring/ProgressTracker.cs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/Mono.Addins.Setup/Mono.Addins.Setup.ProgressMonitoring/ProgressTracker.cs b/Mono.Addins.Setup/Mono.Addins.Setup.ProgressMonitoring/ProgressTracker.cs index 5698ea9..e36e00e 100644 --- a/Mono.Addins.Setup/Mono.Addins.Setup.ProgressMonitoring/ProgressTracker.cs +++ b/Mono.Addins.Setup/Mono.Addins.Setup.ProgressMonitoring/ProgressTracker.cs @@ -126,11 +126,15 @@ namespace Mono.Addins.Setup.ProgressMonitoring if (done) return 1.0; double work = 0; + double totalSize = 0; for (int n = tasks.Count - 1; n >= 0; n--) { Task t = (Task) tasks [n]; - work = t.GetWorkPercent (work) * (double)t.StepSize; + work += Math.Max (0, t.GetWorkPercent (work) * (double)t.StepSize); + totalSize += t.StepSize; } - return work; + if (totalSize > 0) + work /= totalSize; + return Math.Min (1.0, work); } } |