Index: System.Windows.Forms/XplatUIX11.cs
===================================================================
--- System.Windows.Forms/XplatUIX11.cs (revision 74814)
+++ System.Windows.Forms/XplatUIX11.cs (working copy)
@@ -1311,8 +1311,11 @@
private void MapWindow(Hwnd hwnd, WindowType windows) {
if (!hwnd.mapped) {
- if (Control.FromHandle(hwnd.Handle) is Form)
- SendMessage(hwnd.Handle, Msg.WM_SHOWWINDOW, (IntPtr)1, IntPtr.Zero);
+ if (Control.FromHandle(hwnd.Handle) is Form) {
+ Form f = Control.FromHandle(hwnd.Handle) as Form;
+ if (f.WindowState == FormWindowState.Normal)
+ SendMessage(hwnd.Handle, Msg.WM_SHOWWINDOW, (IntPtr)1, IntPtr.Zero);
+ }
// it's possible that our Hwnd is no
// longer valid after making that
@@ -1340,8 +1343,11 @@
private void UnmapWindow(Hwnd hwnd, WindowType windows) {
if (hwnd.mapped) {
- if (Control.FromHandle(hwnd.Handle) is Form)
- SendMessage(hwnd.Handle, Msg.WM_SHOWWINDOW, IntPtr.Zero, IntPtr.Zero);
+ if (Control.FromHandle(hwnd.Handle) is Form) {
+ Form f = Control.FromHandle(hwnd.Handle) as Form;
+ if (f.WindowState == FormWindowState.Normal)
+ SendMessage(hwnd.Handle, Msg.WM_SHOWWINDOW, IntPtr.Zero, IntPtr.Zero);
+ }
// it's possible that our Hwnd is no
// longer valid after making that