Project: SWT
Bug 246505 If install key listener to CCombo, it can not traverse out using combo.traverse(SWT.TRAVERSE_TAB_NEXT).
Reported: 2008-09-07 22:31:28 | Status: resolved fixed

Build ID: I20080617-2000 Steps To Reproduce: Try the sample code below, it will reproduce this problem, combo can not traverse out when key event happened.But this code works on org.eclipse.swt.Combo. import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CCombo; import org.eclipse.swt.events.KeyAdapter; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; public class Main { public static void main(String[] args) throws Exception { Display display = Display.getDefault(); Shell shell = new Shell(display); shell.setLayout(new FillLayout()); shell.setSize(new Point(800, 500)); Composite composite = new Composite(shell, SWT.NONE); final CCombo combo = new CCombo(composite, SWT.BORDER); combo.setBounds(30, 60, 100, 20); combo.addKeyListener(new KeyAdapter(){ @Override public void keyPressed(KeyEvent e) { combo.traverse(SWT.TRAVERSE_TAB_NEXT); } @Override public void keyReleased(KeyEvent e) { } }); Button btn = new Button(composite, SWT.NONE); btn.setBounds(30, 150, 80, 40); btn.setText("abc"); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) display.sleep(); } display.dispose(); } } More information:

Files changed in fix:
bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common/org/eclipse/swt/custom/CCombo.java