Popup windows will be hidden when we minimize a main frame or shown
when we maximize or restore a minimized main frame.

diff --git a/windows/nonclient.c b/windows/nonclient.c
index 0563c59..3788e47 100644
--- a/windows/nonclient.c
+++ b/windows/nonclient.c
@@ -2729,14 +2729,20 @@
 	break;
 
     case SC_MINIMIZE:
+        if (hwnd == GetForegroundWindow())
+            ShowOwnedPopups(hwnd,FALSE);
 	ShowWindow( hwnd, SW_MINIMIZE ); 
 	break;
 
     case SC_MAXIMIZE:
+        if (IsIconic(hwnd) && hwnd == GetForegroundWindow())
+            ShowOwnedPopups(hwnd,TRUE);
 	ShowWindow( hwnd, SW_MAXIMIZE );
 	break;
 
     case SC_RESTORE:
+        if (IsIconic(hwnd) && hwnd == GetForegroundWindow())
+            ShowOwnedPopups(hwnd,TRUE);
 	ShowWindow( hwnd, SW_RESTORE );
 	break;
 
diff --git a/windows/x11drv/event.c b/windows/x11drv/event.c
index 2be0c05..867831d 100644
--- a/windows/x11drv/event.c
+++ b/windows/x11drv/event.c
@@ -1737,7 +1737,10 @@
   WND *wndFocus = WIN_FindWndPtr(hwndFocus);
   WND *pWnd = WIN_FindWndPtr(hWnd);
   if (pWnd->flags & WIN_MANAGED)
+  {
       pWnd->dwStyle &= ~WS_MINIMIZE;
+      ShowOwnedPopups(hWnd,TRUE);
+  }
   WIN_ReleaseWndPtr(pWnd);
 
   if (hwndFocus && IsChild( hWnd, hwndFocus ))
@@ -1759,7 +1762,10 @@
   {
       EndMenu();
       if( pWnd->dwStyle & WS_VISIBLE )
+      {
 	  pWnd->dwStyle |= WS_MINIMIZE;
+          ShowOwnedPopups(hWnd,FALSE);
+      }
   }
   WIN_ReleaseWndPtr(pWnd);
 }