[PATCH 07/10] user32: Correctly place minimized windows.
Zebediah Figura
z.figura12 at gmail.com
Tue Feb 19 09:03:10 CST 2019
On 2/19/19 5:33 AM, Alexandre Julliard wrote:
> Zebediah Figura <z.figura12 at gmail.com> writes:
>
>> diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
>> index 1a61b6cf2c..7e08abdfa2 100644
>> --- a/dlls/winex11.drv/window.c
>> +++ b/dlls/winex11.drv/window.c
>> @@ -2443,17 +2443,6 @@ void CDECL X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags
>> release_win_data( data );
>> }
>>
>> -/* check if the window icon should be hidden (i.e. moved off-screen) */
>> -static BOOL hide_icon( struct x11drv_win_data *data )
>> -{
>> - static const WCHAR trayW[] = {'S','h','e','l','l','_','T','r','a','y','W','n','d',0};
>> -
>> - if (data->managed) return TRUE;
>> - /* hide icons in desktop mode when the taskbar is active */
>> - if (root_window == DefaultRootWindow( gdi_display )) return FALSE;
>> - return IsWindowVisible( FindWindowW( trayW, NULL ));
>> -}
>> -
>> /***********************************************************************
>> * ShowWindow (X11DRV.@)
>> */
>> @@ -2469,15 +2458,7 @@ UINT CDECL X11DRV_ShowWindow( HWND hwnd, INT cmd, RECT *rect, UINT swp )
>>
>> if (!data || !data->whole_window) goto done;
>> if (IsRectEmpty( rect )) goto done;
>> - if (style & WS_MINIMIZE)
>> - {
>> - if (((rect->left != -32000 || rect->top != -32000)) && hide_icon( data ))
>> - {
>> - OffsetRect( rect, -32000 - rect->left, -32000 - rect->top );
>> - swp &= ~(SWP_NOMOVE | SWP_NOCLIENTMOVE);
>> - }
>> - goto done;
>> - }
>> + if (style & WS_MINIMIZE) goto done;
>
> This means that there would be no way to recover the window if the
> taskbar isn't active. I'm not sure that's what we want.
>
Right, I see. Judging from the test failures caused by SetShellWindow(),
I guess the right thing to do in this case is to move it to the bottom
left of the screen, like owned windows.
More information about the wine-devel
mailing list