From 98050f91390e1fc6f7034c0033c44a66f1fd9f6e Mon Sep 17 00:00:00 2001 From: Katayama Hirofumi MZ Date: Fri, 22 Sep 2023 07:35:03 +0900 Subject: [PATCH] [MSPAINT] Don't copy bits on resizing (#5716) - Fix the graphical glitches on resizing and moving toolbars. - Add SWP_NOCOPYBITS flag on positioning controls on resizing of main window. CORE-19137 --- base/applications/mspaint/winproc.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/base/applications/mspaint/winproc.cpp b/base/applications/mspaint/winproc.cpp index 8a6e259b12f..8f9e0ca9b31 100644 --- a/base/applications/mspaint/winproc.cpp +++ b/base/applications/mspaint/winproc.cpp @@ -77,6 +77,7 @@ void CMainWindow::alignChildrenToMainWindow() RECT clientRect, rc; GetClientRect(&clientRect); RECT rcSpace = clientRect; + const UINT uFlags = (SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREPOSITION | SWP_NOCOPYBITS); if (::IsWindowVisible(g_hStatusBar)) { @@ -93,7 +94,7 @@ void CMainWindow::alignChildrenToMainWindow() hDWP = ::DeferWindowPos(hDWP, toolBoxContainer, NULL, rcSpace.right - CX_TOOLBAR, rcSpace.top, CX_TOOLBAR, rcSpace.bottom - rcSpace.top, - SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREPOSITION); + uFlags); rcSpace.right -= CX_TOOLBAR; } else @@ -101,7 +102,7 @@ void CMainWindow::alignChildrenToMainWindow() hDWP = ::DeferWindowPos(hDWP, toolBoxContainer, NULL, rcSpace.left, rcSpace.top, CX_TOOLBAR, rcSpace.bottom - rcSpace.top, - SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREPOSITION); + uFlags); rcSpace.left += CX_TOOLBAR; } } @@ -113,7 +114,7 @@ void CMainWindow::alignChildrenToMainWindow() hDWP = ::DeferWindowPos(hDWP, paletteWindow, NULL, rcSpace.left, rcSpace.bottom - CY_PALETTE, rcSpace.right - rcSpace.left, CY_PALETTE, - SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREPOSITION); + uFlags); rcSpace.bottom -= CY_PALETTE; } else @@ -121,7 +122,7 @@ void CMainWindow::alignChildrenToMainWindow() hDWP = ::DeferWindowPos(hDWP, paletteWindow, NULL, rcSpace.left, rcSpace.top, rcSpace.right - rcSpace.left, CY_PALETTE, - SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREPOSITION); + uFlags); rcSpace.top += CY_PALETTE; } } @@ -131,7 +132,7 @@ void CMainWindow::alignChildrenToMainWindow() hDWP = ::DeferWindowPos(hDWP, canvasWindow, NULL, rcSpace.left, rcSpace.top, rcSpace.right - rcSpace.left, rcSpace.bottom - rcSpace.top, - SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOREPOSITION); + uFlags); } ::EndDeferWindowPos(hDWP);