/** * Constructs a new instance of this popup, specifying the control for which this popup is showing * content, and how the proposals should be obtained and displayed. * * @param infoText Text to be shown in a lower info area, or <code>null</code> if there is no info * area. */ ContentProposalPopup( ContentProposalAdapter adapter, String infoText, ContentProposalList proposalList, int maxDisplay) { // IMPORTANT: Use of SWT.ON_TOP is critical here for ensuring // that the target control retains focus on Mac and Linux. Without // it, the focus will disappear, keystrokes will not go to the // popup, and the popup closer will wrongly close the popup. // On platforms where SWT.ON_TOP overrides SWT.RESIZE, we will live with this. // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=126138 super( adapter.getControl().getShell(), SWT.RESIZE | SWT.ON_TOP, false, false, false, false, false, null, infoText); this.adapter = adapter; this.control = adapter.getControl(); this.labelProvider = adapter.getLabelProvider(); this.proposalList = proposalList; }