The final remaining operation performed within the frontends dispatch loop is that of pending reformats.
The reformat call differs from the redraw in that it is used when a browser windows scale or extents changes. The current operation is to set the browser_reformat_pending global to signal one or more browser_windows required updating and then each browser window has its own flag which must be checked. This was ineficient as the frontends had to check every browser window even if only one required reformatting and broke our data hiding model for browser_window meaning we had to expose browser_window internals all over the codebase. I have a branch vince/reformatpending which changes this to being a scheduled callback and reduces the frontend involvment to providing a single callback entry in the window operation table. This has revealed some dreadful code in many areas including several frontends that never do anything with the flag at all! Because of this this change is much more invasive and alters behaviour in frontends I could not test. I would appreciate frontend maintainers (I have tested/fixed gtk/framebuffer/monkey and riscos) trying this branch and giving feedback before I commit it. Especialy Chris Young on amiga where my changes are untested and I fear I may have broken the frontend altogether (sorry Chris) Hopefully this is the end of the road with these type of changes, my next is to remove the poll entry and let frontends run the main loop themselves. -- Regards Vincent http://www.kyllikki.org/