[Bug 11582] Macromedia Flash 5 Trial hangs when you click "Try" (ShowWindow operations should avoid potentially blocking inter-thread SendMessage if show command is no-op)

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Dec 25 17:21:03 CST 2013


http://bugs.winehq.org/show_bug.cgi?id=11582

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|-unknown                    |user32
           Hardware|Other                       |x86
            Version|unspecified                 |0.9.55.
            Summary|Flash 5 Trial hangs when    |Macromedia Flash 5 Trial
                   |you click "Try"             |hangs when you click "Try"
                   |                            |(ShowWindow operations
                   |                            |should avoid potentially
                   |                            |blocking inter-thread
                   |                            |SendMessage if show command
                   |                            |is no-op)
                 OS|other                       |Linux

--- Comment #11 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

still present.

Actually bug 35229 has the same manifestation, merging both bugs together.

Same thing here: the tool window is already hidden hence ShowWindow(
toolWindow, SW_HIDE) should be essentially a no-op.

Wine needs to check first if the 'show' command turns out a no-op, not
involving any message handling to avoid the potentially blocking SendMessage()
to the thread owning the window.

Source:
http://source.winehq.org/git/wine.git/blob/b423532f94efe9842d4c7e30166a4a2f2121fbbb:/dlls/user32/winpos.c#l1207

--- snip ---
/***********************************************************************
 *        ShowWindow (USER32.@)
 */
BOOL WINAPI ShowWindow( HWND hwnd, INT cmd )
{
    HWND full_handle;

    if (is_broadcast(hwnd))
    {
        SetLastError( ERROR_INVALID_PARAMETER );
        return FALSE;
    }
    if ((full_handle = WIN_IsCurrentThread( hwnd )))
        return show_window( full_handle, cmd );

    return SendMessageW( hwnd, WM_WINE_SHOWWINDOW, cmd, 0 );
}
--- snip ---

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list