Community
Participate
Working Groups
Build id: 200302050800 From Nick: I'm seeing many shells when I trace through BusyIndicator's call to Display.getShells(). There's one shell for the workbench window, then 5 children. There's also another top-level shell that's not for a workbench window. None of the shells, except for the one for the workbench window, have any getData() back-refs. All their handles are non-zero, so they're not disposed.
These extra shells are create in CTabFolder.<init>(Composite, int) line: 186 CCombo.<init>(Composite, int) line: 79 Moving to SWT. Maybe they could be lazy created. Or created and disposed as needed. Why do we need a shell to show a tooltip that may never popup or a combo that may not be used. Moving to SWT.
CCombo does not have fake tooltips. The extra shell in CCOmbo is from the popup list. This can not be removed because the list is required in much of the API - not only is it used to store the items added to the CCombo but it is vital to size calculations, maintianing selection etc.
CTabFolder now creates the tooltip shell only when showing tooltip. Fixed in branch eclipse_look_3_0. CCombo will continue to require the shell for its list.