]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/window.cpp
replaced wxYield() call in PopupMenu() by a much safer wxYieldForCommandsOnly() ...
[wxWidgets.git] / src / os2 / window.cpp
index 14abb69cd1ded9545938f0053f9af5bc38a3878a..8da4f9c1a7a5532a56b0dd2d9032c30727f73731 100644 (file)
@@ -306,6 +306,16 @@ wxWindow::~wxWindow()
     m_isBeingDeleted = TRUE;
 
     OS2DetachWindowMenu();
+    for (wxWindow* pWin = GetParent(); pWin; pWin = pWin->GetParent())
+    {
+        wxFrame*                    pFrame = wxDynamicCast(pWin, wxFrame);
+
+        if (pFrame)
+        {
+            if (pFrame->GetLastFocus() == this)
+                pFrame->SetLastFocus((wxWindow*)NULL);
+        }
+    }
     if (m_parent)
         m_parent->RemoveChild(this);
     DestroyChildren();
@@ -1438,6 +1448,17 @@ void wxWindow::DoMoveWindow(
 , int                               nHeight
 )
 {
+    RECTL                           vRect;
+    HWND                            hParent;
+    wxWindow*                       pParent = GetParent();
+
+    if (pParent)
+        hParent = GetWinHwnd(pParent);
+    else
+        hParent = HWND_DESKTOP;
+    ::WinQueryWindowRect(hParent, &vRect);
+    nY = vRect.yTop - (nY + nHeight);
+
     if ( !::WinSetWindowPos( GetHwnd()
                             ,HWND_TOP
                             ,(LONG)nX
@@ -3338,6 +3359,7 @@ bool wxWindow::HandlePaint()
                               ,0L
                               ,&vLineBundle
                              );
+                ::WinQueryWindowRect(GetHwnd(), &vRect);
                 wxDrawBorder( hPS
                              ,vRect
                              ,m_dwExStyle