if (isDisposed ()) return;
public void open () {	checkWidget ();	bringToTop ();	/*	* Feature on WinCE PPC.  A new application becomes	* the foreground application only if it has at least	* one visible window before the event loop is started.	* The workaround is to explicitely force the shell to	* be the foreground window.	*/	if (OS.IsWinCE) OS.SetForegroundWindow (handle);	OS.SendMessage (handle, OS.WM_CHANGEUISTATE, OS.UIS_INITIALIZE, 0);	setVisible (true);	if (isDisposed ()) return;	/*	* Bug in Windows XP.  Despite the fact that an icon has been	* set for a window, the task bar displays the wrong icon the	* first time the window is made visible with ShowWindow() after	* a call to BringToTop(), when a long time elapses between the	* ShowWindow() and the time the event queue is read.  The icon	* in the window trimming is correct but the one in the task	* bar does not get updated.  The fix is to call PeekMessage()	* with the flag PM_NOREMOVE and PM_QS_SENDMESSAGE to respond	* to a cross thread WM_GETICON.	* 	* NOTE: This allows other cross thread messages to be delivered,	* most notably WM_ACTIVATE.	*/	MSG msg = new MSG ();	int flags = OS.PM_NOREMOVE | OS.PM_NOYIELD | OS.PM_QS_SENDMESSAGE;	OS.PeekMessage (msg, 0, 0, 0, flags);	if (!restoreFocus () && !traverseGroup (true)) setFocus ();}