https://git.reactos.org/?p=reactos.git;a=commitdiff;h=28e277b65f236393cc84e…
commit 28e277b65f236393cc84e3a8795a9e9e0846b811
Author: Bișoc George <fraizeraust99(a)gmail.com>
AuthorDate: Thu Apr 9 19:06:00 2020 +0200
Commit: GitHub <noreply(a)github.com>
CommitDate: Thu Apr 9 19:06:00 2020 +0200
[MSGINA] Redraw only the animation bar scroll (#2518)
Invalidating and updating the whole window is a waste of computation resources and may
cause certain controls notably the text string control to flicker. So instead, just
invalidate the specific portion of the client area which is the animation bar.
---
dll/win32/msgina/gui.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dll/win32/msgina/gui.c b/dll/win32/msgina/gui.c
index e9cba9580ea..6301a19d955 100644
--- a/dll/win32/msgina/gui.c
+++ b/dll/win32/msgina/gui.c
@@ -36,6 +36,7 @@ typedef struct _DLG_DATA
PGINA_CONTEXT pgContext;
HBITMAP hLogoBitmap;
HBITMAP hBarBitmap;
+ HWND hWndBarCtrl;
DWORD BarCounter;
DWORD LogoWidth;
DWORD LogoHeight;
@@ -197,6 +198,9 @@ StatusDialogProc(
{
ERR("SetTimer(IDT_BAR) failed: %d\n", GetLastError());
}
+
+ /* Get the animation bar control */
+ pDlgData->hWndBarCtrl = GetDlgItem(hwndDlg, IDC_BAR);
}
return TRUE;
}
@@ -210,8 +214,8 @@ StatusDialogProc(
* We can divide 413 by 7 without remainder
*/
pDlgData->BarCounter = (pDlgData->BarCounter + 7) %
pDlgData->BarWidth;
- InvalidateRect(hwndDlg, NULL, FALSE);
- UpdateWindow(hwndDlg);
+ InvalidateRect(pDlgData->hWndBarCtrl, NULL, FALSE);
+ UpdateWindow(pDlgData->hWndBarCtrl);
}
return TRUE;
}