https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1158c241941a13d8374f3f...
commit 1158c241941a13d8374f3f1b3016c672c824e7f0 Author: Joachim Henze Joachim.Henze@reactos.org AuthorDate: Sat Jun 22 22:27:23 2019 +0200 Commit: Joachim Henze Joachim.Henze@reactos.org CommitDate: Sat Jun 22 22:27:23 2019 +0200
[WIN32SS] Fix multiple scrollbar redraw issues
This fixes: - CORE-15911 "Scrollbars do not dissapear when Maximizing and not needed" - CORE-10617 "ListView corrupt scrollbar upon resizing the column-header"
and will appease regression: - CORE-15429 "Uninitialized scrollbars in 'My Computer'"
By applying clientFix.patch from CORE-15911 contributed by JIRA-user 'I_Kill_Bugs'.
https://reactos.org/testman/compare.php?ids=66723,66729
Earlier I already committed this fix into 0.4.12-RC-9-g 5ac548544ff6b3d52c6591385d9029164e766d71 --- win32ss/user/ntuser/winpos.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/win32ss/user/ntuser/winpos.c b/win32ss/user/ntuser/winpos.c index dba7738c3b3..e01c19c1c29 100644 --- a/win32ss/user/ntuser/winpos.c +++ b/win32ss/user/ntuser/winpos.c @@ -1832,7 +1832,7 @@ co_WinPosSetWindowPos( }
/* Calculate the non client area for resizes, as this is used in the copy region */ - if (!(WinPos.flags & SWP_NOSIZE)) + if ((WinPos.flags & (SWP_NOSIZE | SWP_FRAMECHANGED)) != SWP_NOSIZE) { VisBeforeJustClient = VIS_ComputeVisibleRegion(Window, TRUE, FALSE, (Window->style & WS_CLIPSIBLINGS) ? TRUE : FALSE); @@ -1973,12 +1973,16 @@ co_WinPosSetWindowPos( */
CopyRgn = IntSysCreateRectpRgn(0, 0, 0, 0); - if (WinPos.flags & SWP_NOSIZE) + if ((WinPos.flags & SWP_NOSIZE) && (WinPos.flags & SWP_NOCLIENTSIZE)) RgnType = IntGdiCombineRgn(CopyRgn, VisAfter, VisBefore, RGN_AND); else if (VisBeforeJustClient != NULL) { RgnType = IntGdiCombineRgn(CopyRgn, VisAfter, VisBeforeJustClient, RGN_AND); - REGION_Delete(VisBeforeJustClient); + } + + if (VisBeforeJustClient != NULL) + { + REGION_Delete(VisBeforeJustClient); }
/* Now use in copying bits which are in the update region. */