very-slow calc loading: + SdrPaintView::ShowPagePgNum + SdrPaintView::ShowPage + SdrPageView::SdrPageView + SdrPageView::AddWindowToPageView + SdrPageView::ImpMakePageViewWinRec + SdrPageView::ImpInsertControl 84.68 + UnoControlContainer::addControl 76.79 + UnoListBoxControl::createPeer 57.88 + UnoControl::createPeer [ percentage breadown from here: 78.51 ] + VCLXToolkit::createWindow 32.84 + VCLXToolkit::ImplCreateWindow + Listbox::ListBox 29.08 Intrinsicly slow: + Listbox::ImplInit + UnoControl::updateFromModel 30.98 + Locking (?) etc. 14.28 + SdrUnoControlList thrash/add/release etc. So the SdrPageView is responsible for adding hundreds of invisible controls 4x over to the sheet. + svx/source/svdraw/svdpagv.cxx (ImpInsertControl) ** Should try-to re-design to construct control views on demand ** Much of the ListBox construction pain: + comes from the early construction of the child / popup window. + window creation / title setting etc. etc. + ImplListBoxFloatingWin (etc.) ** should delay floating window (& as much as possible) to idle ** ** should filter pixmap rendering against the visible screen on OutputDevice [ have proto-patch ] ** UnoListBoxControl: toolkit/source/controls/unocontrols.cxx Hacking: + ImpMakePageViewWinRec() + we need get (/ref?) all SdrObjects & whack them on a not-yet-visible list + we need to listen (via XWindowListener?) from 'SdrPageView' for view-pane movement + and update / use InsertControl & on-the-fly instantiate widgets. + 2 things to catch: + view movement ... + object movement ... ListBox: + can we re-parent the mpImplLB & delay mpFloatWin creation. + bin in-line 'IsDropDownBox' [ protected ] +