Alexandre Julliard : server: Return the surface rect as top clipping rect.

Alexandre Julliard julliard at winehq.org
Wed Jul 11 15:53:50 CDT 2018


Module: wine
Branch: master
Commit: 766287ad6adcca090d7b718031e0c1e8a424d185
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=766287ad6adcca090d7b718031e0c1e8a424d185

Author: Alexandre Julliard <julliard at 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 at 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))
     {




More information about the wine-cvs mailing list