Tisheng Chen wrote:

User32.RealChildWindowFromPoint is not implemented
yet. This causes foobar2000 (with foo_ui_columns)  to
crash, whenever you right-click on a panel.
This patch is only a partial solution. It just stop
the crash of programs like foobar2000. But the
functionality is not quite correct. It just uses
ChildWindowFromPointEx to find and return a
childwindow, since I don't really understand the
difference between them.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/windows/windowreference/windowfunctions/realchildwindowfrompoint.asp

It seems that RealChildWindowFromPoint doesn't recurse into deeper windows, except for HTTRANSPARENT windows, where it recurses deeper than ChildWindowFromPoint to find a window that doesn't return this hit-test (except if it is a static control). What a mess for developers...

Two comments on the patch:
1. Please send patches as text attachments. Usually, renaming to .diff or .txt before attaching is enough to make this happen. 2. "+ FIXME("partial stub. HWND: 0x%lx\n", (DWORD) hwndParent);" -> don't cast hwndParent to DWORD, just change the format to %p.

Thanks for the patch,

Hope someone else will implement a better one.

--
Rob Shearman



Reply via email to