When the child window and the parent window are no longer in the same process, the parent window shadow does not update the vis rgn of the child window and modify the WS_VISIBLE style of the child window. so we need to update the vis rgn when another process gets the DC of the child window.
Signed-off-by: Jiajin Cui cuijiajin@uniontech.com
From: Jiajin Cui cuijiajin@uniontech.com
When the child window and the parent window are no longer in the same process, the parent window shadow does not update the vis rgn of the child window and modify the WS_VISIBLE style of the child window. so we need to update the vis rgn when another process gets the DC of the child window.
Signed-off-by: Jiajin Cui cuijiajin@uniontech.com --- dlls/win32u/dce.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/dlls/win32u/dce.c b/dlls/win32u/dce.c index 0c25fdcf61b..aaffbede16d 100644 --- a/dlls/win32u/dce.c +++ b/dlls/win32u/dce.c @@ -1012,6 +1012,9 @@ HDC WINAPI NtUserGetDCEx( HWND hwnd, HRGN clip_rgn, DWORD flags ) /* cross-process invalidation is not supported yet, so always update the vis rgn */ if (!is_current_process_window( hwnd )) update_vis_rgn = TRUE;
+ /*the Window is not visible but have WS_VISIBLE style, so update the vis rgn */ + if(!is_window_visible( hwnd ) && get_window_long( hwnd, GWL_STYLE ) & WS_VISIBLE) update_vis_rgn = TRUE; + if (set_dce_flags( dce->hdc, DCHF_VALIDATEVISRGN )) update_vis_rgn = TRUE; /* DC was dirty */
if (update_vis_rgn) update_visible_region( dce );
This merge request was closed by Jiajin Cui.