]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/frame.cpp
Misc. fixes
[wxWidgets.git] / src / msw / frame.cpp
index 0099a3178784cc56db12363844b49e2234293692..b115aa8ed6e9530a298945e2d1b960af0e59f94f 100644 (file)
@@ -35,6 +35,7 @@
 #include "wx/statusbr.h"
 #include "wx/toolbar.h"
 #include "wx/menuitem.h"
+#include "wx/log.h"
 
 #ifdef LoadAccelerators
 #undef LoadAccelerators
@@ -119,7 +120,12 @@ bool wxFrame::Create(wxWindow *parent,
 
   // we pass NULL as parent to MSWCreate because frames with parents behave
   // very strangely under Win95 shell
-  MSWCreate(m_windowId, NULL, wxFrameClassName, this, title,
+  // Alteration by JACS: keep normal Windows behaviour (float on top of parent)
+  // with this style.
+  if ((m_windowStyle & wxFRAME_FLOAT_ON_PARENT) == 0)
+    parent = NULL;
+
+  MSWCreate(m_windowId, parent, wxFrameClassName, this, title,
             x, y, width, height, style);
 
   wxModelessWindows.Append(this);
@@ -916,7 +922,16 @@ void wxFrame::ProcessCommand(int id)
   {
     bar->Check(id,!bar->Checked(id)) ;
   }
-  GetEventHandler()->ProcessEvent(commandEvent);
+
+/*
+  // Process events starting with the window with the focus, if any.
+  wxWindow* focusWin = wxFindFocusDescendant(this);
+
+  wxEvtHandler* evtHandler = focusWin ? focusWin->GetEventHandler() : GetEventHandler();
+*/
+
+  wxEvtHandler* evtHandler = GetEventHandler();
+  evtHandler->ProcessEvent(commandEvent);
 }
 
 // Checks if there is a toolbar, and returns the first free client position