http://bugs.winehq.org/show_bug.cgi?id=8914
------- Additional Comments From dmda@yandex.ru 2007-11-07 11:28 ------- I created popup window with code below: memset(WindowClass, 0, SizeOf(WindowClass)); WindowClass.lpfnWndProc = AWndProc_def; WindowClass.lpszClassName = L"HINTWINDOW"; WindowClass.style = 0x2080B; RegisterClassW(WindowClass);
FHintControl = CreateWindowEx(0x80, WindowClass.lpszClassName, NULL, 0x80800000, 150, 270, 550, 150, 0, 0, HInstance, NULL); ShowWindow(FHintControl, SW_NORMAL);
When AWndProc_def() gets WM_NCHITTEST it returns HTTRANSPARENT. it also handles WM_PAINT and runs PatBlt to make it white:
switch (msg) { case WM_PAINT: DC = BeginPaint(HWnd, &paint); PatBlt(DC, paint.rcPaint.Left, paint.rcPaint.Top, paint.rcPaint.Right- paint.rcPaint.Left, paint.rcPaint.Bottom - paint.rcPaint.Top, WHITENESS); EndPage(DC); return 0; case WM_NCHITTEST: // in my real code I check for X coordinate to leave a stripe non-transparent, just to make it possible to activate the popup by clicking on it return HTTRANSPARENT; } return CallWindowProcW(DefWindowProcW, HWnd, Msg, WParam, LParam);
You also need a main window with some controls on it. Then try to overlap main window with this popup and click to the controls on the main window and try to get them focused. Under Windows it works.
It's not a very important problem, just a matter of fact that Wine behaves differently and user clicks are not propagated through tooltip windows.