]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/mdi.cpp
Never show tree lines when there are tree buttons under OS X and GTK+
[wxWidgets.git] / src / msw / mdi.cpp
index 0a72ab2ea7abdb06c253ad09b84e797dd984fd52..1386635c5131e337f0026a9673953cdcb203030b 100644 (file)
@@ -540,25 +540,6 @@ WXLRESULT wxMDIParentFrame::MSWWindowProc(WXUINT message,
             }
             break;
 
-        case WM_COMMAND:
-            {
-                WXWORD id, cmd;
-                WXHWND hwnd;
-                UnpackCommand(wParam, lParam, &id, &hwnd, &cmd);
-
-                (void)HandleCommand(id, cmd, hwnd);
-
-                // even if the frame didn't process it, there is no need to try it
-                // once again (i.e. call wxFrame::HandleCommand()) - we just did it,
-                // so pretend we processed the message anyhow
-                processed = true;
-            }
-
-            // always pass this message DefFrameProc(), otherwise MDI menu
-            // commands (and sys commands - more surprisingly!) won't work
-            MSWDefWindowProc(message, wParam, lParam);
-            break;
-
         case WM_CREATE:
             m_clientWindow = OnCreateClient();
             // Uses own style for client style
@@ -688,13 +669,18 @@ void wxMDIParentFrame::OnMDICommand(wxCommandEvent& event)
 
 #endif // wxUSE_MENUS
 
-bool wxMDIParentFrame::HandleCommand(WXWORD id, WXWORD cmd, WXHWND hwnd)
+bool wxMDIParentFrame::TryBefore(wxEvent& event)
 {
-    wxMDIChildFrame * const child = GetActiveChild();
-    if ( child && child->HandleCommand(id, cmd, hwnd) )
-        return true;
+    // menu (and toolbar) events should be sent to the active child frame
+    // first, if any
+    if ( event.GetEventType() == wxEVT_COMMAND_MENU_SELECTED )
+    {
+        wxMDIChildFrame * const child = GetActiveChild();
+        if ( child && child->ProcessEventHere(event) )
+            return true;
+    }
 
-    return wxFrame::HandleCommand(id, cmd, hwnd);
+    return wxMDIParentFrameBase::TryBefore(event);
 }
 
 WXLRESULT wxMDIParentFrame::MSWDefWindowProc(WXUINT message,
@@ -732,7 +718,7 @@ bool wxMDIParentFrame::MSWTranslateMessage(WXMSG* msg)
     // but it doesn't check for the (custom) accelerators of the window menu
     // items as it's not part of the menu bar as it's handled by Windows itself
     // so we need to do this explicitly
-    if ( m_accelWindowMenu->Translate(this, msg) )
+    if ( m_accelWindowMenu && m_accelWindowMenu->Translate(this, msg) )
         return true;
 #endif // wxUSE_MENUS && wxUSE_ACCEL