<AWT Dev> [9] Request for review: JDK-8140525 AwtFrame::WmShowWindow() may steal focus

Anton Tarasov anton.tarasov at jetbrains.com
Wed Nov 23 14:23:47 UTC 2016


Hi Sergey,

On 11/23/2016 4:57 PM, Sergey Bylokhov wrote:
> Hi, Anton.
> On 23.11.16 13:08, Anton Tarasov wrote:
>> bug: https://bugs.openjdk.java.net/browse/JDK-8140525
>> webrev: http://cr.openjdk.java.net/~ant/JDK-8140525/webrev.0
>>
>> Please find the description in the bug. This comment explains the fix:
>
> One question just to clarify the fix. Are there differences between 
> "::IsWindowVisible(GetHWnd()" vs "window->IsVisible()" for the fix, or 
> the first one was checked only?
>

It actually won't work, because m_visible is set ahead:

AwtFrame::Show()
{
     m_visible = true;
<...>
     ::ShowWindow(hwnd);
}

The latter call causes WM_SHOWWINDOW and causes 
AwtFrame::WmShowWindow(BOOL show, UINT status).

So we have [window->isVisible() == true] whereas 
[::IsWindowVisible(hwnd) == false] at the moment.

Anton.


More information about the awt-dev mailing list