Kimmo Myllyvirta kimmo.myllyvirta@gmail.com wrote:
diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c index c2b35ec..64fdfe0 100644 --- a/dlls/user32/winpos.c +++ b/dlls/user32/winpos.c @@ -1239,6 +1239,9 @@ BOOL WINAPI ShowWindow( HWND hwnd, INT cmd ) if ((cmd == SW_HIDE) && !(GetWindowLongW( hwnd, GWL_STYLE ) & WS_VISIBLE)) return FALSE;
- if ((cmd == SW_SHOW) && (GetWindowLongW( hwnd, GWL_STYLE ) & WS_VISIBLE))
return TRUE;
- return SendMessageW( hwnd, WM_WINE_SHOWWINDOW, cmd, 0 );
}
Please have a look at the show_window() implementation and try to cover all cases that trigger SWP_SHOWWINDOW flag passed to SetWindowPos() in order to actually show a window. In fact it's only SW_HIDE that leads to that, so perhaps just adding an 'else' to the SW_HIDE case is enough?
On 04/30/2017 07:38 AM, Dmitry Timoshkov wrote:
Kimmo Myllyvirta kimmo.myllyvirta@gmail.com wrote:
diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c index c2b35ec..64fdfe0 100644 --- a/dlls/user32/winpos.c +++ b/dlls/user32/winpos.c @@ -1239,6 +1239,9 @@ BOOL WINAPI ShowWindow( HWND hwnd, INT cmd ) if ((cmd == SW_HIDE) && !(GetWindowLongW( hwnd, GWL_STYLE ) & WS_VISIBLE)) return FALSE;
- if ((cmd == SW_SHOW) && (GetWindowLongW( hwnd, GWL_STYLE ) & WS_VISIBLE))
return TRUE;
}return SendMessageW( hwnd, WM_WINE_SHOWWINDOW, cmd, 0 );
Please have a look at the show_window() implementation and try to cover all cases that trigger SWP_SHOWWINDOW flag passed to SetWindowPos() in order to actually show a window. In fact it's only SW_HIDE that leads to that, so perhaps just adding an 'else' to the SW_HIDE case is enough?
Yeah, it would be better to fix all the cases at once instead of one-by-one. Probably something similar to the attached diff. I'll take a look at it later, this is already fixed in staging it seems.