@Override
		public void handleEvent(Event event) {
			/* async is needed to wait until focus reaches its new Control */
			display.asyncExec(new Runnable() {
				@Override
				public void run() {
					if (display.isDisposed()) return;
					Control control = display.getFocusControl();
					if (control == null || (control != text && control != table)) {
						popupShell.setVisible(false);
					}
				}
			});
		}