From df0d8ac5be7c8e22175674d6554b53156bfe9a91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= Date: Tue, 19 May 2020 15:18:47 +0300 Subject: [PATCH] winex11.drv: Use a helper to retrieve the decoration rect for managed windows. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Gabriel Ivăncescu Signed-off-by: Alexandre Julliard --- dlls/winex11.drv/window.c | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index d6873ce4290..595c54a7c0a 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -1154,19 +1154,16 @@ void make_window_embedded( struct x11drv_win_data *data ) /*********************************************************************** - * X11DRV_window_to_X_rect - * - * Convert a rect from client to X window coordinates + * get_decoration_rect */ -static void X11DRV_window_to_X_rect( struct x11drv_win_data *data, RECT *rect, - const RECT *window_rect, const RECT *client_rect ) +static void get_decoration_rect( struct x11drv_win_data *data, RECT *rect, + const RECT *window_rect, const RECT *client_rect ) { DWORD style, ex_style, style_mask = 0, ex_style_mask = 0; unsigned long decor; - RECT rc; + SetRectEmpty( rect ); if (!data->managed) return; - if (IsRectEmpty( rect )) return; style = GetWindowLongW( data->hwnd, GWL_STYLE ); ex_style = GetWindowLongW( data->hwnd, GWL_EXSTYLE ); @@ -1179,9 +1176,23 @@ static void X11DRV_window_to_X_rect( struct x11drv_win_data *data, RECT *rect, ex_style_mask |= WS_EX_DLGMODALFRAME; } - SetRectEmpty( &rc ); - AdjustWindowRectEx( &rc, style & style_mask, FALSE, ex_style & ex_style_mask ); + AdjustWindowRectEx( rect, style & style_mask, FALSE, ex_style & ex_style_mask ); +} + +/*********************************************************************** + * X11DRV_window_to_X_rect + * + * Convert a rect from client to X window coordinates + */ +static void X11DRV_window_to_X_rect( struct x11drv_win_data *data, RECT *rect, + const RECT *window_rect, const RECT *client_rect ) +{ + RECT rc; + + if (IsRectEmpty( rect )) return; + + get_decoration_rect( data, &rc, window_rect, client_rect ); rect->left -= rc.left; rect->right -= rc.right; rect->top -= rc.top;