popup = new Shell (getShell (), SWT.NO_TRIM);
popup = new Shell (getDisplay(), SWT.NO_TRIM | SWT.ON_TOP);
public CCombo (Composite parent, int style) {	super (parent, style = checkStyle (style));		int textStyle = SWT.SINGLE;	if ((style & SWT.READ_ONLY) != 0) textStyle |= SWT.READ_ONLY;	if ((style & SWT.FLAT) != 0) textStyle |= SWT.FLAT;	text = new Text (this, textStyle);	popup = new Shell (getShell (), SWT.NO_TRIM);	int listStyle = SWT.SINGLE | SWT.V_SCROLL;	if ((style & SWT.FLAT) != 0) listStyle |= SWT.FLAT;	if ((style & SWT.RIGHT_TO_LEFT) != 0) listStyle |= SWT.RIGHT_TO_LEFT;	if ((style & SWT.LEFT_TO_RIGHT) != 0) listStyle |= SWT.LEFT_TO_RIGHT;	list = new List (popup, listStyle);	int arrowStyle = SWT.ARROW | SWT.DOWN;	if ((style & SWT.FLAT) != 0) arrowStyle |= SWT.FLAT;	arrow = new Button (this, arrowStyle);	Listener listener = new Listener () {		public void handleEvent (Event event) {			if (popup == event.widget) {				popupEvent (event);				return;			}			if (text == event.widget) {				textEvent (event);				return;			}			if (list == event.widget) {				listEvent (event);				return;			}			if (arrow == event.widget) {				arrowEvent (event);				return;			}			if (CCombo.this == event.widget) {				comboEvent (event);				return;			}		}	};		int [] comboEvents = {SWT.Dispose, SWT.Move, SWT.Resize};	for (int i=0; i<comboEvents.length; i++) this.addListener (comboEvents [i], listener);		int [] popupEvents = {SWT.Close, SWT.Paint, SWT.Deactivate};	for (int i=0; i<popupEvents.length; i++) popup.addListener (popupEvents [i], listener);		int [] textEvents = {SWT.KeyDown, SWT.KeyUp, SWT.Modify, SWT.MouseDown, SWT.MouseUp, SWT.Traverse, SWT.FocusIn, SWT.FocusOut};	for (int i=0; i<textEvents.length; i++) text.addListener (textEvents [i], listener);		int [] listEvents = {SWT.MouseUp, SWT.Selection, SWT.Traverse, SWT.KeyDown, SWT.KeyUp, SWT.FocusIn, SWT.FocusOut};	for (int i=0; i<listEvents.length; i++) list.addListener (listEvents [i], listener);		int [] arrowEvents = {SWT.Selection, SWT.FocusIn, SWT.FocusOut};	for (int i=0; i<arrowEvents.length; i++) arrow.addListener (arrowEvents [i], listener);		initAccessible();}