From 46851318fe9c1ed4a72ce06d086fd6e83059b890 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Tue, 23 Jun 1998 10:29:23 +0000 Subject: [PATCH] Corrected problem with MDI children not refreshing (removed WS_CLIPCHILDREN). Double-fixed the LEAVE/ENTER bug... git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@139 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/mdi.cpp | 11 ++++++----- src/msw/window.cpp | 12 ++++++++---- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/src/msw/mdi.cpp b/src/msw/mdi.cpp index 7f7c044db0..7b808ede83 100644 --- a/src/msw/mdi.cpp +++ b/src/msw/mdi.cpp @@ -125,9 +125,7 @@ bool wxMDIParentFrame::Create(wxWindow *parent, wxDebugMsg("Loaded m_windowMenu %d\n", m_windowMenu); #endif - // Adding WS_CLIPCHILDREN causes children not to be properly - // drawn when first displaying them. - DWORD msflags = WS_OVERLAPPED ; // | WS_CLIPCHILDREN ; + DWORD msflags = WS_OVERLAPPED ; if (style & wxMINIMIZE_BOX) msflags |= WS_MINIMIZEBOX; if (style & wxMAXIMIZE_BOX) @@ -142,8 +140,11 @@ bool wxMDIParentFrame::Create(wxWindow *parent, msflags |= WS_MAXIMIZE; if (style & wxCAPTION) msflags |= WS_CAPTION; - if (style & wxCLIP_CHILDREN) - msflags |= WS_CLIPCHILDREN; + + // Adding WS_CLIPCHILDREN causes children not to be properly + // drawn when first displaying them. +// if (style & wxCLIP_CHILDREN) +// msflags |= WS_CLIPCHILDREN; wxWindow::MSWCreate(m_windowId, parent, wxMDIFrameClassName, this, title, x, y, width, height, msflags); diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 07126b51e3..239bd48bb1 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -1936,11 +1936,11 @@ long wxWindow::MSWDefWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) long wxWindow::Default() { - // These are fake events, ignore them - if (m_lastEvent != wxEVT_ENTER_WINDOW && m_lastEvent != wxEVT_LEAVE_WINDOW) - return this->MSWDefWindowProc(m_lastMsg, m_lastWParam, m_lastLParam); - else + // Ignore 'fake' events (perhaps generated as a result of a separate real event) + if (m_lastMsg == 0) return 0; + + return this->MSWDefWindowProc(m_lastMsg, m_lastWParam, m_lastLParam); } bool wxWindow::MSWProcessMessage(WXMSG* pMsg) @@ -2444,6 +2444,8 @@ void wxWindow::MSWOnMouseEnter(const int x, const int y, const WXUINT flags) m_lastEvent = wxEVT_ENTER_WINDOW; m_lastXPos = event.m_x; m_lastYPos = event.m_y; + // No message - ensure we don't try to call the default behaviour accidentally. + m_lastMsg = 0; GetEventHandler()->ProcessEvent(event); } @@ -2462,6 +2464,8 @@ void wxWindow::MSWOnMouseLeave(const int x, const int y, const WXUINT flags) m_lastEvent = wxEVT_LEAVE_WINDOW; m_lastXPos = event.m_x; m_lastYPos = event.m_y; + // No message - ensure we don't try to call the default behaviour accidentally. + m_lastMsg = 0; GetEventHandler()->ProcessEvent(event); }