Rémi Bernon : user32: Factor IsRectEmpty driver check in ShowWindow.

Alexandre Julliard julliard at winehq.org
Mon May 17 15:45:32 CDT 2021


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

Author: Rémi Bernon <rbernon at codeweavers.com>
Date:   Fri May 14 13:40:04 2021 +0200

user32: Factor IsRectEmpty driver check in ShowWindow.

Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/winpos.c          | 6 ++++--
 dlls/wineandroid.drv/window.c | 1 -
 dlls/winemac.drv/window.c     | 1 -
 dlls/winex11.drv/window.c     | 1 -
 4 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c
index c6f806f7beb..cf7e7914869 100644
--- a/dlls/user32/winpos.c
+++ b/dlls/user32/winpos.c
@@ -1044,7 +1044,7 @@ static BOOL show_window( HWND hwnd, INT cmd )
     BOOL wasVisible = (style & WS_VISIBLE) != 0;
     BOOL showFlag = TRUE;
     RECT newPos = {0, 0, 0, 0};
-    UINT swp = 0;
+    UINT new_swp, swp = 0;
 
     TRACE("hwnd=%p, cmd=%d, wasVisible %d\n", hwnd, cmd, wasVisible);
 
@@ -1117,7 +1117,9 @@ static BOOL show_window( HWND hwnd, INT cmd )
         if (!IsWindow( hwnd )) goto done;
     }
 
-    swp = USER_Driver->pShowWindow( hwnd, cmd, &newPos, swp );
+    if (IsRectEmpty( &newPos )) new_swp = swp;
+    else new_swp = USER_Driver->pShowWindow( hwnd, cmd, &newPos, swp );
+    swp = new_swp;
 
     parent = GetAncestor( hwnd, GA_PARENT );
     if (parent && !IsWindowVisible( parent ) && !(swp & SWP_STATECHANGED))
diff --git a/dlls/wineandroid.drv/window.c b/dlls/wineandroid.drv/window.c
index 1cb1bbbadc9..1c61d4eb76e 100644
--- a/dlls/wineandroid.drv/window.c
+++ b/dlls/wineandroid.drv/window.c
@@ -1385,7 +1385,6 @@ void CDECL ANDROID_WindowPosChanged( HWND hwnd, HWND insert_after, UINT swp_flag
  */
 UINT CDECL ANDROID_ShowWindow( HWND hwnd, INT cmd, RECT *rect, UINT swp )
 {
-    if (IsRectEmpty( rect )) return swp;
     if (!IsIconic( hwnd )) return swp;
     /* always hide icons off-screen */
     if (rect->left != -32000 || rect->top != -32000)
diff --git a/dlls/winemac.drv/window.c b/dlls/winemac.drv/window.c
index e7f5327fcdc..4e60189ead9 100644
--- a/dlls/winemac.drv/window.c
+++ b/dlls/winemac.drv/window.c
@@ -1798,7 +1798,6 @@ UINT CDECL macdrv_ShowWindow(HWND hwnd, INT cmd, RECT *rect, UINT swp)
           hwnd, data ? data->cocoa_window : NULL, cmd, wine_dbgstr_rect(rect), swp);
 
     if (!data || !data->cocoa_window) goto done;
-    if (IsRectEmpty(rect)) goto done;
     if (GetWindowLongW(hwnd, GWL_STYLE) & WS_MINIMIZE)
     {
         if (rect->left != -32000 || rect->top != -32000)
diff --git a/dlls/winex11.drv/window.c b/dlls/winex11.drv/window.c
index b3ae5c54408..c30fe6d39b0 100644
--- a/dlls/winex11.drv/window.c
+++ b/dlls/winex11.drv/window.c
@@ -2560,7 +2560,6 @@ UINT CDECL X11DRV_ShowWindow( HWND hwnd, INT cmd, RECT *rect, UINT swp )
     struct x11drv_win_data *data = get_win_data( hwnd );
 
     if (!data || !data->whole_window) goto done;
-    if (IsRectEmpty( rect )) goto done;
     if (style & WS_MINIMIZE)
     {
         if (((rect->left != -32000 || rect->top != -32000)) && hide_icon( data ))




More information about the wine-cvs mailing list