I have a procedure which contains two very time-consuming loops, each taking several minutes when applied to the whole database. To reassure myself that it’s doing something rather than having crashed or entered an infinite loop, I set up a progress bar for each loop using progressalert
.
These both work fine, and disappear correctly when cancelled at the end of each loop, provided the progress bar is the active window at the point the new progress bar is launched in the second loop.
However, if I know I’ve got time to kill and can keep half an eye on how long I’ve got, I’ll probably switch to Safari, Mail or another application to do something else while it’s getting on with it. If another application is active when the new progress bar starts, instead of creating a single window, Panorama launches multiple identical progress bar windows, stacked on top of each other with an increasingly heavy shadow. These can be moved around, but when that second progress bar is cancelled, only the frontmost of the windows is closed. Then, because there is still at least one progress bar window open, Panorama naturally behaves as if it hasn’t been correctly cancelled and, as the help page states, ‘the progress alert will be stuck and you’ll have to force quit Panorama.’
This screenshot shows just six progress bars that were created when running the second loop using a small subset of the database:
When running the two loops over the entire database, where the second loop would take more than ten minutes, the stack of progress bars is much deeper. Here I have moved the top seven away from the stack but the heavy shadow suggests there’s a huge number left below the middle one.