X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/82c9f85ce5aceaa3aedac7e690070d5eff904e5b..e6cec3db8ce53752adb51f4ff1c4c3bfea6882c9:/src/common/toplvcmn.cpp?ds=sidebyside

diff --git a/src/common/toplvcmn.cpp b/src/common/toplvcmn.cpp
index 7a9101dbb2..a67959b9f0 100644
--- a/src/common/toplvcmn.cpp
+++ b/src/common/toplvcmn.cpp
@@ -45,7 +45,10 @@ END_EVENT_TABLE()
 // implementation
 // ============================================================================
 
-IMPLEMENT_DYNAMIC_CLASS(wxTopLevelWindow, wxWindow)
+// FIXME: some platforms don't have wxTopLevelWindow yet
+#ifdef wxTopLevelWindowNative
+    IMPLEMENT_DYNAMIC_CLASS(wxTopLevelWindow, wxWindow)
+#endif
 
 // ----------------------------------------------------------------------------
 // construction/destruction
@@ -55,6 +58,11 @@ wxTopLevelWindowBase::wxTopLevelWindowBase()
 {
 }
 
+wxTopLevelWindowBase::~wxTopLevelWindowBase()
+{
+    // this destructor is required for Darwin
+}
+
 bool wxTopLevelWindowBase::Destroy()
 {
     // delayed destruction: the frame will be deleted during the next idle
@@ -129,6 +137,9 @@ void wxTopLevelWindowBase::OnSize(wxSizeEvent& WXUNUSED(event))
             {
                 if ( child )
                 {
+#ifdef __WXPM__
+                    AlterChildPos();
+#endif
                     return;     // it's our second subwindow - nothing to do
                 }
 
@@ -151,7 +162,14 @@ void wxTopLevelWindowBase::OnSize(wxSizeEvent& WXUNUSED(event))
             static const int ofs = 0;
 #endif
 
+#ifdef __WXPM__
+            // OS/2 PM has to do a LOT of stuff to get things
+            // positioned right, especially if the child is a
+            // scrolled window.
+            UpdateInternalSize(child, clientW, clientH);
+#else
             child->SetSize(ofs, ofs, clientW - 2*ofs, clientH - 2*ofs);
+#endif
         }
     }
 }
@@ -169,4 +187,3 @@ bool wxTopLevelWindowBase::SendIconizeEvent(bool iconized)
 
     return GetEventHandler()->ProcessEvent(event);
 }
-