Hi Mr. Bates,
I do not have an answer for you, but might have some ideas that can help. I am also interested in knowing if this is possible without workarounds.
The following page seems highly relevant, I think it contains all the view notifications.
Why is it so important to know if they've stopped modifying the view?
Maybe you could have a separate thread that constantly checks the difference between the current time and the time of the last view notification. You could have a variable that keeps track of the last time a view notification was received. If the current time minus the last view notification time is greater than some defined period of time, then you can assume the user is finished changing the view.
One possible issue I can see with this is that the user might rotate/pan/zoom the view, but not let go of the mouse button. The program would then assume they've stopped 'updating' the view, but they've actually just paused the rotation/pan/zoom and are still holding down the button. If the state of the mouse buttons can be ascertained though, then this set of conditions could be avoided by checking if any of the mouse buttons are down.
Another issue is that they may stop changing the view, but quickly start changing the view again. If the defined period of time between the current time and last notification is too great, then it would miss the momentary period where the user stopped updating the view.
Yeah I still don't think any of the view notifications provide any way of determining if the update is a "final" update. The postRender notifiy sounds good, but it still fires after each render...which is after every single frame.
But your idea may work... I'm going to give it a try and I'll post back on how it goes. The reason I need this is that I'm doing some of my own rendering in the bufferswap event. And once the view modifications are complete, I need to do 1 FINAL, but slightly different render.