System.Windows.Forms.XplatUIX11.MapWindow C# (CSharp) Method

MapWindow() private method

private MapWindow ( Hwnd hwnd, WindowType windows ) : void
hwnd Hwnd
windows WindowType
return void
		private void MapWindow(Hwnd hwnd, WindowType windows) {
			if (!hwnd.mapped) {
				Form f = Control.FromHandle(hwnd.Handle) as Form;
				if (f != null) {
					if (f.WindowState == FormWindowState.Normal) {
						f.waiting_showwindow = true;
						SendMessage(hwnd.Handle, Msg.WM_SHOWWINDOW, (IntPtr)1, IntPtr.Zero);
					}
				}

				// it's possible that our Hwnd is no
				// longer valid after making that
				// SendMessage call, so check here.
				if (hwnd.zombie)
					return;

				if ((windows & WindowType.Whole) != 0) {
					XMapWindow(DisplayHandle, hwnd.whole_window);
				}
				if ((windows & WindowType.Client) != 0) {
					XMapWindow(DisplayHandle, hwnd.client_window);
				}

				hwnd.mapped = true;

				if (f != null) {
					if (f.waiting_showwindow) {
						WaitForHwndMessage (hwnd, Msg.WM_SHOWWINDOW);
						CreateParams cp = f.GetCreateParams();
						if (!ExStyleSet (cp.ExStyle, WindowExStyles.WS_EX_MDICHILD) &&
						    !StyleSet (cp.Style, WindowStyles.WS_CHILD)) {
							WaitForHwndMessage (hwnd, Msg.WM_ACTIVATE, true);
						}
					}
				}
			}
		}
XplatUIX11