You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against 083dea7fce4372840ac18176496a7d05dadd5ad8.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
From d0087c1c1d68b0bda581ca9a394d8b980dd7a430 Mon Sep 17 00:00:00 2001
|
||||
From 8480b74b27a589db418493a787af4c98e05e29b7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Gabriel=20Iv=C4=83ncescu?= <gabrielopcode@gmail.com>
|
||||
Date: Wed, 16 Sep 2020 17:35:09 +0300
|
||||
Subject: [PATCH] user32: Fix messages sent on a window without WS_CHILD, but
|
||||
@@ -17,10 +17,9 @@ This also fixes a TODO message sequence, so that Wine matches Windows.
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=40262
|
||||
Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
|
||||
---
|
||||
dlls/user32/tests/msg.c | 3 ++-
|
||||
dlls/user32/winpos.c | 4 ++--
|
||||
dlls/win32u/window.c | 7 +++++--
|
||||
3 files changed, 9 insertions(+), 5 deletions(-)
|
||||
dlls/user32/tests/msg.c | 3 ++-
|
||||
dlls/win32u/window.c | 11 +++++++----
|
||||
2 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/user32/tests/msg.c b/dlls/user32/tests/msg.c
|
||||
index 4e2d39dff10..f28b1151c4d 100644
|
||||
@@ -43,26 +42,11 @@ index 4e2d39dff10..f28b1151c4d 100644
|
||||
|
||||
ok(GetWindowLongA(popup, GWL_STYLE) & WS_VISIBLE, "WS_VISIBLE should be set\n");
|
||||
ok(!IsWindowVisible(popup), "IsWindowVisible() should return FALSE\n");
|
||||
diff --git a/dlls/user32/winpos.c b/dlls/user32/winpos.c
|
||||
index b3e8aff3cfa..eaa965fdbee 100644
|
||||
--- a/dlls/user32/winpos.c
|
||||
+++ b/dlls/user32/winpos.c
|
||||
@@ -983,8 +983,8 @@ static BOOL show_window( HWND hwnd, INT cmd )
|
||||
}
|
||||
swp = new_swp;
|
||||
|
||||
- parent = NtUserGetAncestor( hwnd, GA_PARENT );
|
||||
- if (parent && !IsWindowVisible( parent ) && !(swp & SWP_STATECHANGED))
|
||||
+ if ((style & WS_CHILD) && (parent = NtUserGetAncestor( hwnd, GA_PARENT )) &&
|
||||
+ !IsWindowVisible( parent ) && !(swp & SWP_STATECHANGED))
|
||||
{
|
||||
/* if parent is not visible simply toggle WS_VISIBLE and return */
|
||||
if (showFlag) WIN_SetStyle( hwnd, WS_VISIBLE, 0 );
|
||||
diff --git a/dlls/win32u/window.c b/dlls/win32u/window.c
|
||||
index c9801ff8870..71b75445efa 100644
|
||||
index 96a1606c5a1..10f43b9b32f 100644
|
||||
--- a/dlls/win32u/window.c
|
||||
+++ b/dlls/win32u/window.c
|
||||
@@ -2315,8 +2315,11 @@ static BOOL fixup_swp_flags( WINDOWPOS *winpos, const RECT *old_window_rect, int
|
||||
@@ -2699,8 +2699,11 @@ static BOOL fixup_swp_flags( WINDOWPOS *winpos, const RECT *old_window_rect, int
|
||||
if (winpos->cy < 0) winpos->cy = 0;
|
||||
else if (winpos->cy > 32767) winpos->cy = 32767;
|
||||
|
||||
@@ -76,6 +60,17 @@ index c9801ff8870..71b75445efa 100644
|
||||
|
||||
if (win->dwStyle & WS_VISIBLE) winpos->flags &= ~SWP_SHOWWINDOW;
|
||||
else
|
||||
@@ -3735,8 +3738,8 @@ static BOOL show_window( HWND hwnd, INT cmd )
|
||||
}
|
||||
swp = new_swp;
|
||||
|
||||
- parent = NtUserGetAncestor( hwnd, GA_PARENT );
|
||||
- if (parent && !is_window_visible( parent ) && !(swp & SWP_STATECHANGED))
|
||||
+ if ((style & WS_CHILD) && (parent = NtUserGetAncestor( hwnd, GA_PARENT )) &&
|
||||
+ !is_window_visible( parent ) && !(swp & SWP_STATECHANGED))
|
||||
{
|
||||
/* if parent is not visible simply toggle WS_VISIBLE and return */
|
||||
if (show_flag) set_window_style( hwnd, WS_VISIBLE, 0 );
|
||||
--
|
||||
2.35.1
|
||||
|
||||
|
Reference in New Issue
Block a user