Community
Participate
Working Groups
When I set the tabList for a composite, if I exclude a control from the list, once I set focus to that control, I cannot tab off it. So, if I have 3 button controls: controlA, controlB, controlC I call: composite.setTabList(new Control[]{controlA, controlB}); If I click on controlC, giving it focus, and then press 'tab', the focus does not move from controlC. So, if I get focus on a control that is not in a tabList, there is not way to tab back to the other controls on that composite. I'm not sure if this is expected behavior or not.
If you exclude a control from the tab list, it doesn't take part in tabbing. This means that is if focus somehow gets to the control, you won't be able to tab out.
WONTFOX
I think the problem is in the Control.setTabGroup() method. If I have a tablist defined this method can return true but does not return false if it is not in the tablist. Instead it uses the OS Flag WS_TABSTOP boolean isTabGroup () { Control [] tabList = parent._getTabList (); if (tabList != null) { for (int i=0; i<tabList.length; i++) { if (tabList [i] == this) return true; } //Add this new line if Tablist ist set return false; } int bits = OS.GetWindowLong (handle, OS.GWL_STYLE); return (bits & OS.WS_TABSTOP) != 0; }