]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/frame.cpp
crash upon hide fix
[wxWidgets.git] / src / os2 / frame.cpp
index 646295e41179ad7a82a812cf69bfd9d0a071cdf1..0ca6894be97dc28f7db8e0ae70b482880fa8438c 100644 (file)
@@ -695,29 +695,13 @@ bool wxFrame::ShowFullScreen(
 // Checks if there is a toolbar, and returns the first free client position
 wxPoint wxFrame::GetClientAreaOrigin() const
 {
-    wxPoint                         vPoint(0, 0);
+    wxPoint                         vPoint = wxTopLevelWindow::GetClientAreaOrigin();
 
-#if wxUSE_TOOLBAR
-    if (GetToolBar())
-    {
-        int                         nWidth;
-        int                         nHeight;
-
-        GetToolBar()->GetSize( &nWidth
-                              ,&nHeight
-                             );
-
-        if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL)
-        {
-            vPoint.x += nWidth;
-        }
-        else
-        {
-            // PM is backwards from windows
-            vPoint.y += nHeight;
-        }
-    }
-#endif //wxUSE_TOOLBAR
+    //
+    // In OS/2 the toolbar and statusbar are frame extensions so there is no
+    // adjustment.  The client is supposedly resized for a toolbar in OS/2
+    // as it is for the status bar.
+    //
     return vPoint;
 } // end of wxFrame::GetClientAreaOrigin
 
@@ -1198,7 +1182,7 @@ MRESULT EXPENTRY wxFrameMainWndProc(
                         }
                         else
                         {
-                            pSWP[i].x    = vRectl.xLeft;
+                            pSWP[i].x    = vRectl.xLeft + nWidth;
                             pSWP[i].y    = vRectl.yBottom + nHeight;
                             pSWP[i].cx   = vRectl.xRight - (vRectl.xLeft + nWidth);
                             pSWP[i].cy   = vRectl.yTop - vRectl.yBottom - nHeight;
@@ -1436,3 +1420,22 @@ wxWindow* wxFrame::GetClient()
 {
     return wxFindWinFromHandle((WXHWND)::WinWindowFromID(m_hFrame, FID_CLIENT));
 }
+
+void wxFrame::SendSizeEvent()
+{
+    if (!m_bIconized)
+    {
+        RECTL                       vRect = wxGetWindowRect(GetHwnd());
+
+        ::WinPostMsg( GetHwnd()
+                     ,WM_SIZE
+                     ,MPFROM2SHORT( vRect.xRight - vRect.xLeft
+                                   ,vRect.xRight - vRect.xLeft
+                                  )
+                     ,MPFROM2SHORT( vRect.yTop - vRect.yBottom
+                                   ,vRect.yTop - vRect.yBottom
+                                  )
+                    );
+    }
+}
+