Commit e6dfbcb0 authored by Alexandre Julliard's avatar Alexandre Julliard

winex11: Check for managed mode in create_whole_window again now that it is called lazily.

parent 71f81bf1
...@@ -1102,6 +1102,13 @@ static Window create_whole_window( Display *display, struct x11drv_win_data *dat ...@@ -1102,6 +1102,13 @@ static Window create_whole_window( Display *display, struct x11drv_win_data *dat
if (!(cx = data->window_rect.right - data->window_rect.left)) cx = 1; if (!(cx = data->window_rect.right - data->window_rect.left)) cx = 1;
if (!(cy = data->window_rect.bottom - data->window_rect.top)) cy = 1; if (!(cy = data->window_rect.bottom - data->window_rect.top)) cy = 1;
if (!data->managed && is_window_managed( data->hwnd, SWP_NOACTIVATE, &data->window_rect ))
{
TRACE( "making win %p/%lx managed\n", data->hwnd, data->whole_window );
data->managed = TRUE;
SetPropA( data->hwnd, managed_prop, (HANDLE)1 );
}
mask = get_window_attributes( display, data, &attr ); mask = get_window_attributes( display, data, &attr );
wine_tsx11_lock(); wine_tsx11_lock();
......
...@@ -139,21 +139,19 @@ void X11DRV_SetWindowStyle( HWND hwnd, DWORD old_style ) ...@@ -139,21 +139,19 @@ void X11DRV_SetWindowStyle( HWND hwnd, DWORD old_style )
if (changed & WS_VISIBLE) if (changed & WS_VISIBLE)
{ {
if (!(data = X11DRV_get_win_data( hwnd )) && data = X11DRV_get_win_data( hwnd );
!(data = X11DRV_create_win_data( hwnd ))) return; if (data) invalidate_dce( hwnd, &data->window_rect );
/* we don't unmap windows, that causes trouble with the window manager */
if (!(new_style & WS_VISIBLE)) return;
if (!data && !(data = X11DRV_create_win_data( hwnd ))) return;
if (data->whole_window && (new_style & WS_VISIBLE) && if (data->whole_window && X11DRV_is_window_rect_mapped( &data->window_rect ))
X11DRV_is_window_rect_mapped( &data->window_rect ))
{ {
X11DRV_set_wm_hints( display, data ); X11DRV_set_wm_hints( display, data );
if (!data->mapped) if (!data->mapped)
{ {
if (!data->managed && is_window_managed( hwnd, SWP_NOACTIVATE, &data->window_rect ))
{
TRACE( "making win %p/%lx managed\n", hwnd, data->whole_window );
data->managed = TRUE;
SetPropA( hwnd, managed_prop, (HANDLE)1 );
}
TRACE( "mapping win %p\n", hwnd ); TRACE( "mapping win %p\n", hwnd );
X11DRV_sync_window_style( display, data ); X11DRV_sync_window_style( display, data );
wine_tsx11_lock(); wine_tsx11_lock();
...@@ -162,8 +160,6 @@ void X11DRV_SetWindowStyle( HWND hwnd, DWORD old_style ) ...@@ -162,8 +160,6 @@ void X11DRV_SetWindowStyle( HWND hwnd, DWORD old_style )
data->mapped = TRUE; data->mapped = TRUE;
} }
} }
/* we don't unmap windows, that causes trouble with the window manager */
invalidate_dce( hwnd, &data->window_rect );
} }
if (changed & WS_DISABLED) if (changed & WS_DISABLED)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment