Fix monitoring large file with frequent writes freezes UI issue

Fix #9661, close #15598
This commit is contained in:
Brian C 2024-09-02 18:08:20 +02:00 committed by Don Ho
parent 624e315686
commit d5ec03a464
1 changed files with 7 additions and 1 deletions

View File

@ -79,6 +79,7 @@ DWORD WINAPI Notepad_plus::monitorFileOnChange(void * params)
case WAIT_OBJECT_0 + 1:
// We've received a notification in the queue.
{
bool bDoneOnce = false;
DWORD dwAction = 0;
wstring fn;
// Process all available changes, ignore User actions
@ -92,8 +93,13 @@ DWORD WINAPI Notepad_plus::monitorFileOnChange(void * params)
if (wcscmp(fullFileName, fn.c_str()) == 0)
{
if (dwAction == FILE_ACTION_MODIFIED)
{
if (!bDoneOnce)
{
::PostMessage(h, NPPM_INTERNAL_RELOADSCROLLTOEND, reinterpret_cast<WPARAM>(buf), 0);
bDoneOnce = true;
Sleep(250); // Limit refresh rate
}
}
else if ((dwAction == FILE_ACTION_REMOVED) || (dwAction == FILE_ACTION_RENAMED_OLD_NAME))
{