From: Rémi Bernon rbernon@codeweavers.com
--- dlls/win32u/driver.c | 3 +-- dlls/win32u/window.c | 2 +- dlls/winemac.drv/macdrv.h | 3 +-- dlls/winemac.drv/window.c | 11 +++++------ dlls/winex11.drv/window.c | 11 +++++------ dlls/winex11.drv/x11drv.h | 3 +-- include/wine/gdi_driver.h | 4 ++-- 7 files changed, 16 insertions(+), 21 deletions(-)
diff --git a/dlls/win32u/driver.c b/dlls/win32u/driver.c index d9935b0ed53..ca31eec5f49 100644 --- a/dlls/win32u/driver.c +++ b/dlls/win32u/driver.c @@ -886,8 +886,7 @@ static BOOL nulldrv_CreateWindowSurface( HWND hwnd, BOOL layered, const RECT *su return FALSE; }
-static void nulldrv_MoveWindowBits( HWND hwnd, const RECT *window_rect, const RECT *client_rect, - const RECT *visible_rect, const RECT *valid_rects ) +static void nulldrv_MoveWindowBits( HWND hwnd, const struct window_rects *new_rects, const RECT *valid_rects ) { }
diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c index 207aa8ac272..b93428707a7 100644 --- a/dlls/win32u/window.c +++ b/dlls/win32u/window.c @@ -2033,7 +2033,7 @@ static BOOL apply_window_pos( HWND hwnd, HWND insert_after, UINT swp_flags, stru if (surface_win && surface_win != hwnd) move_window_bits( hwnd, &new_rects->visible, &new_rects->visible, &new_rects->window, valid_rects ); else - user_driver->pMoveWindowBits( hwnd, &new_rects->window, &new_rects->client, &new_rects->visible, valid_rects ); + user_driver->pMoveWindowBits( hwnd, new_rects, valid_rects ); }
user_driver->pWindowPosChanged( hwnd, insert_after, swp_flags, new_rects, new_surface ); diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h index c887e4b3ea5..7fffa8e722f 100644 --- a/dlls/winemac.drv/macdrv.h +++ b/dlls/winemac.drv/macdrv.h @@ -149,8 +149,7 @@ extern void macdrv_SetLayeredWindowAttributes(HWND hwnd, COLORREF key, BYTE alph extern LRESULT macdrv_WindowMessage(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp); extern BOOL macdrv_WindowPosChanging(HWND hwnd, UINT swp_flags, BOOL shaped, struct window_rects *rects); extern BOOL macdrv_CreateWindowSurface(HWND hwnd, BOOL layered, const RECT *surface_rect, struct window_surface **surface); -extern void macdrv_MoveWindowBits(HWND hwnd, const RECT *window_rect, const RECT *client_rect, - const RECT *visible_rect, const RECT *valid_rects); +extern void macdrv_MoveWindowBits(HWND hwnd, const struct window_rects *new_rects, const RECT *valid_rects); extern void macdrv_WindowPosChanged(HWND hwnd, HWND insert_after, UINT swp_flags, const struct window_rects *new_rects, struct window_surface *surface); extern void macdrv_DestroyCursorIcon(HCURSOR cursor); diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c index 0ef69a2a65f..97f781738af 100644 --- a/dlls/winemac.drv/window.c +++ b/dlls/winemac.drv/window.c @@ -1888,8 +1888,7 @@ BOOL macdrv_WindowPosChanging(HWND hwnd, UINT swp_flags, BOOL shaped, struct win /*********************************************************************** * MoveWindowBits (MACDRV.@) */ -void macdrv_MoveWindowBits(HWND hwnd, const RECT *window_rect, const RECT *client_rect, - const RECT *visible_rect, const RECT *valid_rects) +void macdrv_MoveWindowBits(HWND hwnd, const struct window_rects *new_rects, const RECT *valid_rects) { RECT old_visible_rect, old_client_rect; struct macdrv_win_data *data; @@ -1902,17 +1901,17 @@ void macdrv_MoveWindowBits(HWND hwnd, const RECT *window_rect, const RECT *clien release_win_data(data);
/* if all that happened is that the whole window moved, copy everything */ - if (EqualRect(&valid_rects[0], visible_rect) && EqualRect(&valid_rects[1], &old_visible_rect)) + if (EqualRect(&valid_rects[0], &new_rects->visible) && EqualRect(&valid_rects[1], &old_visible_rect)) { /* A Cocoa window's bits are moved automatically */ if (!window && (valid_rects[0].left - valid_rects[1].left || valid_rects[0].top - valid_rects[1].top)) - move_window_bits(hwnd, 0, &old_visible_rect, visible_rect, - &old_client_rect, client_rect, window_rect); + move_window_bits(hwnd, 0, &old_visible_rect, &new_rects->visible, + &old_client_rect, &new_rects->client, &new_rects->window); } else { move_window_bits(hwnd, window, &valid_rects[1], &valid_rects[0], - &old_client_rect, client_rect, window_rect); + &old_client_rect, &new_rects->client, &new_rects->window); } }
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c index c428ea98539..cbf13b8f4da 100644 --- a/dlls/winex11.drv/window.c +++ b/dlls/winex11.drv/window.c @@ -2620,8 +2620,7 @@ BOOL X11DRV_WindowPosChanging( HWND hwnd, UINT swp_flags, BOOL shaped, struct wi /*********************************************************************** * MoveWindowBits (X11DRV.@) */ -void X11DRV_MoveWindowBits( HWND hwnd, const RECT *window_rect, const RECT *client_rect, - const RECT *visible_rect, const RECT *valid_rects ) +void X11DRV_MoveWindowBits( HWND hwnd, const struct window_rects *new_rects, const RECT *valid_rects ) { RECT old_visible_rect, old_client_rect; struct x11drv_win_data *data; @@ -2634,17 +2633,17 @@ void X11DRV_MoveWindowBits( HWND hwnd, const RECT *window_rect, const RECT *clie release_win_data( data );
/* if all that happened is that the whole window moved, copy everything */ - if (EqualRect( &valid_rects[0], visible_rect ) && EqualRect( &valid_rects[1], &old_visible_rect )) + if (EqualRect( &valid_rects[0], &new_rects->visible ) && EqualRect( &valid_rects[1], &old_visible_rect )) { /* if we have an X window the bits will be moved by the X server */ if (!window && (valid_rects[0].left - valid_rects[1].left || valid_rects[0].top - valid_rects[1].top)) - move_window_bits( hwnd, 0, &old_visible_rect, visible_rect, - &old_client_rect, client_rect, window_rect ); + move_window_bits( hwnd, 0, &old_visible_rect, &new_rects->visible, + &old_client_rect, &new_rects->client, &new_rects->window ); } else { move_window_bits( hwnd, window, &valid_rects[1], &valid_rects[0], - &old_client_rect, client_rect, window_rect ); + &old_client_rect, &new_rects->client, &new_rects->window ); } }
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h index 9d3be3868ab..83e7889fb59 100644 --- a/dlls/winex11.drv/x11drv.h +++ b/dlls/winex11.drv/x11drv.h @@ -244,8 +244,7 @@ extern void X11DRV_UpdateLayeredWindow( HWND hwnd, UINT flags ); extern LRESULT X11DRV_WindowMessage( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp ); extern BOOL X11DRV_WindowPosChanging( HWND hwnd, UINT swp_flags, BOOL shaped, struct window_rects *rects ); extern BOOL X11DRV_CreateWindowSurface( HWND hwnd, BOOL layered, const RECT *surface_rect, struct window_surface **surface ); -extern void X11DRV_MoveWindowBits( HWND hwnd, const RECT *window_rect, const RECT *client_rect, - const RECT *visible_rect, const RECT *valid_rects ); +extern void X11DRV_MoveWindowBits( HWND hwnd, const struct window_rects *new_rects, const RECT *valid_rects ); extern void X11DRV_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flags, const struct window_rects *new_rects, struct window_surface *surface ); extern BOOL X11DRV_SystemParametersInfo( UINT action, UINT int_param, void *ptr_param, diff --git a/include/wine/gdi_driver.h b/include/wine/gdi_driver.h index c04ea5edef6..69bd096a1a5 100644 --- a/include/wine/gdi_driver.h +++ b/include/wine/gdi_driver.h @@ -193,7 +193,7 @@ struct gdi_dc_funcs };
/* increment this when you change the DC function table */ -#define WINE_GDI_DRIVER_VERSION 92 +#define WINE_GDI_DRIVER_VERSION 93
#define GDI_PRIORITY_NULL_DRV 0 /* null driver */ #define GDI_PRIORITY_FONT_DRV 100 /* any font driver */ @@ -360,7 +360,7 @@ struct user_driver_funcs LRESULT (*pWindowMessage)(HWND,UINT,WPARAM,LPARAM); BOOL (*pWindowPosChanging)(HWND,UINT,BOOL,struct window_rects *); BOOL (*pCreateWindowSurface)(HWND,BOOL,const RECT *,struct window_surface**); - void (*pMoveWindowBits)(HWND,const RECT *,const RECT *,const RECT *,const RECT *); + void (*pMoveWindowBits)(HWND,const struct window_rects *,const RECT *); void (*pWindowPosChanged)(HWND,HWND,UINT,const struct window_rects*,struct window_surface*); /* system parameters */ BOOL (*pSystemParametersInfo)(UINT,UINT,void*,UINT);