winex11.drv: Use a helper to retrieve the decoration rect for managed windows.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
55ba364837
commit
df0d8ac5be
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue