Module: wine Branch: master Commit: 766287ad6adcca090d7b718031e0c1e8a424d185 URL: https://source.winehq.org/git/wine.git/?a=commit;h=766287ad6adcca090d7b71803...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Jul 11 15:20:56 2018 +0200
server: Return the surface rect as top clipping rect.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/gdi32/dibdrv/dc.c | 7 +------ dlls/user32/painting.c | 2 +- server/window.c | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/dlls/gdi32/dibdrv/dc.c b/dlls/gdi32/dibdrv/dc.c index 1aa67f3..2c4d7d0 100644 --- a/dlls/gdi32/dibdrv/dc.c +++ b/dlls/gdi32/dibdrv/dc.c @@ -572,7 +572,6 @@ void dibdrv_set_window_surface( DC *dc, struct window_surface *surface ) { char buffer[FIELD_OFFSET( BITMAPINFO, bmiColors[256] )]; BITMAPINFO *info = (BITMAPINFO *)buffer; - RECT rect; void *bits; PHYSDEV windev; struct windrv_physdev *physdev; @@ -599,12 +598,8 @@ void dibdrv_set_window_surface( DC *dc, struct window_surface *surface ) dibdrv = physdev->dibdrv; bits = surface->funcs->get_info( surface, info ); init_dib_info_from_bitmapinfo( &dibdrv->dib, info, bits ); - /* clip the device rect to the surface */ - rect = surface->rect; - offset_rect( &rect, dc->device_rect.left, dc->device_rect.top ); - intersect_rect( &dc->device_rect, &dc->device_rect, &rect ); dibdrv->dib.rect = dc->vis_rect; - offset_rect( &dibdrv->dib.rect, -rect.left, -rect.top ); + offset_rect( &dibdrv->dib.rect, -dc->device_rect.left, -dc->device_rect.top ); dibdrv->bounds = surface->funcs->get_bounds( surface ); DC_InitDC( dc ); } diff --git a/dlls/user32/painting.c b/dlls/user32/painting.c index 9178b61..665e1c0 100644 --- a/dlls/user32/painting.c +++ b/dlls/user32/painting.c @@ -179,7 +179,7 @@ static void update_visible_region( struct dce *dce ) } }
- if (!surface) top_rect = get_virtual_screen_rect(); + if (!surface) SetRectEmpty( &top_rect ); __wine_set_visible_region( dce->hdc, vis_rgn, &win_rect, &top_rect, surface ); if (surface) window_surface_release( surface ); } diff --git a/server/window.c b/server/window.c index 2a0acb8..e58d7e4 100644 --- a/server/window.c +++ b/server/window.c @@ -2445,7 +2445,7 @@ DECL_HANDLER(get_visible_region) if (data) set_reply_data_ptr( data, reply->total_size ); } reply->top_win = top->handle; - reply->top_rect = top->visible_rect; + reply->top_rect = top->surface_rect;
if (!is_desktop_window(win)) {