Display display = event.display; display.asyncExec(new Runnable() { public void run() { if (DropTarget.this.control == null || DropTarget.this.control.isDisposed() || DropTarget.this.control.isVisible()) return;  unregisterDropTarget(); } });
int[] args = new int[]{OS.XmNdropSiteActivity,   OS.XmDROP_SITE_INACTIVE,}; OS.XmDropSiteUpdate(DropTarget.this.control.handle, args, args.length/2);
		public void handleEvent (Event event) {			switch (event.type) {				case SWT.Dispose: {					if (!DropTarget.this.isDisposed()){						onDispose();					}					break;				}				case SWT.Show: {					Display display = event.display;					display.asyncExec(new Runnable() {						public void run() {							if (DropTarget.this.control == null || 								DropTarget.this.control.isDisposed() ||								!DropTarget.this.control.isVisible()) return;							registerDropTarget();						}					});					break;				}				case SWT.Hide: {					Display display = event.display;					display.asyncExec(new Runnable() {						public void run() {							if (DropTarget.this.control == null || 							    DropTarget.this.control.isDisposed() || 							    DropTarget.this.control.isVisible()) return;												unregisterDropTarget();						}					});						break;				}			}		}