From 6acd40dc9860db186b702bec663ab03df2b09bb5 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Tue, 6 Jul 2004 23:57:01 +0000 Subject: [PATCH] Fixed X11DRV_GetDC for the desktop window. Use the client window as drawable when possible. --- dlls/x11drv/winpos.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/dlls/x11drv/winpos.c b/dlls/x11drv/winpos.c index 738c515643d..abf326b3a44 100644 --- a/dlls/x11drv/winpos.c +++ b/dlls/x11drv/winpos.c @@ -400,6 +400,8 @@ BOOL X11DRV_GetDC( HWND hwnd, HDC hdc, HRGN hrgn, DWORD flags ) if (flags & DCX_PARENTCLIP) flags &= ~DCX_CLIPSIBLINGS; top = GetAncestor( hwnd, GA_ROOT ); + if (!top) top = GetDesktopWindow(); + if (top != hwnd) { escape.org.x = escape.org.y = 0; @@ -422,21 +424,21 @@ BOOL X11DRV_GetDC( HWND hwnd, HDC hdc, HRGN hrgn, DWORD flags ) escape.org.y = 0; escape.drawable_org = escape.org; } - else + else if (flags & DCX_WINDOW) { escape.drawable = data->whole_window; escape.drawable_org.x = data->whole_rect.left; escape.drawable_org.y = data->whole_rect.top; - if (flags & DCX_WINDOW) - { - escape.org.x = win->rectWindow.left - data->whole_rect.left; - escape.org.y = win->rectWindow.top - data->whole_rect.top; - } - else - { - escape.org.x = win->rectClient.left - data->whole_rect.left; - escape.org.y = win->rectClient.top - data->whole_rect.top; - } + escape.org.x = win->rectWindow.left - data->whole_rect.left; + escape.org.y = win->rectWindow.top - data->whole_rect.top; + } + else + { + escape.drawable = data->client_window; + escape.drawable_org.x = win->rectClient.left; + escape.drawable_org.y = win->rectClient.top; + escape.org.x = 0; + escape.org.y = 0; } } -- 2.11.4.GIT