fix another minor bug in DLGC_WANTMESSAGE handling in MSWProcessMessage()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49919 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2007-11-13 17:32:47 +00:00
parent 754626543e
commit 0075ea2279

View File

@@ -2260,10 +2260,10 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
if ( !bCtrlDown ) if ( !bCtrlDown )
{ {
// this will contain the dialog code of this // this will contain the dialog code of this
// window and all of its parent windows // window and all of its parent windows in turn
LONG lDlgCode2 = lDlgCode; LONG lDlgCode2 = lDlgCode;
while ( win && !win->IsTopLevel() ) while ( win )
{ {
if ( lDlgCode2 & DLGC_WANTMESSAGE ) if ( lDlgCode2 & DLGC_WANTMESSAGE )
{ {
@@ -2273,6 +2273,13 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
return false; return false;
} }
// don't propagate keyboard messages beyond
// the first top level window parent
if ( win->IsTopLevel() )
break;
win = win->GetParent();
lDlgCode2 = ::SendMessage lDlgCode2 = ::SendMessage
( (
GetHwndOf(win), GetHwndOf(win),
@@ -2280,8 +2287,6 @@ bool wxWindowMSW::MSWProcessMessage(WXMSG* pMsg)
0, 0,
0 0
); );
win = win->GetParent();
} }
} }
else // bCtrlDown else // bCtrlDown