[PATCH] user32: on VK_RETURN, send WM_COMMAND to ancestor, not parent.
Lei Zhang
thestig at google.com
Wed Apr 9 01:01:59 CDT 2008
On Fri, Apr 4, 2008 at 9:55 PM, Lei Zhang <thestig at google.com> wrote:
>
> On Fri, Apr 4, 2008 at 11:11 AM, Lei Zhang <thestig at google.com> wrote:
> >
> > On Fri, Apr 4, 2008 at 9:14 AM, Dmitry Timoshkov <dmitry at codeweavers.com> wrote:
> > > "Lei Zhang" <thestig at google.com> wrote:
> > >
> > >
> > > > The edit control is the child of a dialog box bar, which is in turn
> > > > the child of another dialog box foo. SetParent() is not involved, if
> > > > that's what you mean.
> > > >
> > >
> > > Seems that's not the case then, from your test it looks more like
> > > a WM_COMMAND forwarding from a child dialog to the parent one.
> > >
> > > --
> > > Dmitry.
> > >
> >
> > I'm pretty sure the parent dialog is getting the WM_COMMAND directly.
> > It is not the case where the child dialog gets a WM_COMMAND, and
> > forwards it to its parent.
> >
> > Running the test on Windows, the child dialog gets two WM_COMMANDS -
> > EN_SETFOCUS and EN_KILLFOCUS. Then the parent dialog gets WM_COMMAND
> > with IDOK.
> >
> > - Lei
> >
>
> Ah, this is because the child dialog has the DS_CONTROL style. I
> should test for that and handle it appropriately.
>
> - Lei
>
I thought maybe the DS_CONTROL style caused the message to get
propagated up, like in DIALOG_FindMsgDestination(). So I did more
tests.
I removed the DS_CONTROL style, but that didn't change the result of
the test. I also tried something more elaborate, where we have a
series of dialog windows, each of which contains another dialog
window... until the last one which contains the edit control. When I
send the edit control the VK_RETURN, the top most dialog window gets
the WM_COMMAND with wparam=IDOK. None of the dialog boxes between the
edit control and its ancestor gets the WM_COMMAND msg.
More information about the wine-devel
mailing list