From: Rémi Bernon rbernon@codeweavers.com
--- dlls/winex11.drv/window.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index 94098d75e0c..c3840a2722f 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -1659,16 +1659,20 @@ BOOL X11DRV_GetWindowStateUpdates( HWND hwnd, UINT *state_cmd, UINT *config_cmd, { struct x11drv_win_data *data;
- if (!(data = get_win_data( hwnd ))) return FALSE; - - *state_cmd = window_update_client_state( data ); - *config_cmd = window_update_client_config( data ); - *rect = window_rect_from_visible( &data->rects, data->current_state.rect ); + *state_cmd = *config_cmd = 0;
- release_win_data( data ); + if ((data = get_win_data( hwnd ))) + { + *state_cmd = window_update_client_state( data ); + *config_cmd = window_update_client_config( data ); + *rect = window_rect_from_visible( &data->rects, data->current_state.rect ); + release_win_data( data ); + }
- TRACE( "hwnd %p, returning state_cmd %#x, config_cmd %#x, rect %s\n", hwnd, *state_cmd, *config_cmd, wine_dbgstr_rect(rect) ); - return *state_cmd || *config_cmd; + if (!*state_cmd && !*config_cmd) return FALSE; + TRACE( "hwnd %p, returning state_cmd %#x, config_cmd %#x, rect %s\n", + hwnd, *state_cmd, *config_cmd, wine_dbgstr_rect(rect) ); + return TRUE; }
static BOOL handle_state_change( unsigned long serial, unsigned long *expect_serial, UINT size, const void *value,