Enhance NPPN_GLOBALMODIFIED notification
The commit enhances 49e6957d48
This commit is contained in:
parent
49e6957d48
commit
9a6614ea98
|
@ -1173,9 +1173,10 @@ enum Platform { PF_UNKNOWN, PF_X86, PF_X64, PF_IA64, PF_ARM64 };
|
||||||
//scnNotification->nmhdr.hwndFrom = hwndNpp;
|
//scnNotification->nmhdr.hwndFrom = hwndNpp;
|
||||||
//scnNotification->nmhdr.idFrom = BufferID; //where pluginMessage is pointer of type wchar_t
|
//scnNotification->nmhdr.idFrom = BufferID; //where pluginMessage is pointer of type wchar_t
|
||||||
|
|
||||||
#define NPPN_GLOBALMODIFIED (NPPN_FIRST + 30) // To notify plugins that the current document is just modified by Replace All action. For solving the performance issue (from v8.6.4),
|
#define NPPN_GLOBALMODIFIED (NPPN_FIRST + 30) // To notify plugins that the current document is just modified by Replace All action.
|
||||||
// Notepad++ doesn't trigger SCN_MODIFIED & other Scitilla notifications during Replace All action anymore.
|
// For solving the performance issue (from v8.6.4), Notepad++ doesn't trigger SCN_MODIFIED during Replace All action anymore.
|
||||||
// Plugin devs should monitor NPPN_GLOBALMODIFIED instead. This notification is implemented in Notepad++ v8.6.5.
|
// As a result, the plugins which monitor SCN_MODIFIED should also monitor NPPN_GLOBALMODIFIED.
|
||||||
|
// This notification is implemented in Notepad++ v8.6.5.
|
||||||
//scnNotification->nmhdr.code = NPPN_GLOBALMODIFIED;
|
//scnNotification->nmhdr.code = NPPN_GLOBALMODIFIED;
|
||||||
//scnNotification->nmhdr.hwndFrom = BufferID;
|
//scnNotification->nmhdr.hwndFrom = BufferID;
|
||||||
//scnNotification->nmhdr.idFrom = 0; // preserved for the future use, must be zero
|
//scnNotification->nmhdr.idFrom = 0; // preserved for the future use, must be zero
|
||||||
|
|
|
@ -3520,7 +3520,7 @@ LRESULT Notepad_plus::process(HWND hwnd, UINT message, WPARAM wParam, LPARAM lPa
|
||||||
{
|
{
|
||||||
SCNotification scnN{};
|
SCNotification scnN{};
|
||||||
scnN.nmhdr.code = NPPN_GLOBALMODIFIED;
|
scnN.nmhdr.code = NPPN_GLOBALMODIFIED;
|
||||||
scnN.nmhdr.hwndFrom = reinterpret_cast<void*>(_pEditView->getCurrentBuffer());
|
scnN.nmhdr.hwndFrom = reinterpret_cast<void*>(wParam);
|
||||||
scnN.nmhdr.idFrom = 0;
|
scnN.nmhdr.idFrom = 0;
|
||||||
_pluginsManager.notify(&scnN);
|
_pluginsManager.notify(&scnN);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
|
@ -2817,8 +2817,9 @@ int FindReplaceDlg::processAll(ProcessOperation op, const FindOption *opt, bool
|
||||||
(*_ppEditView)->execute(SCI_SETMODEVENTMASK, notifFlag);
|
(*_ppEditView)->execute(SCI_SETMODEVENTMASK, notifFlag);
|
||||||
if (op == ProcessReplaceAll && nbProcessed > 0) // All the notification of modification (SCN_MODIFIED) were removed during the operations, so we set modified status true here
|
if (op == ProcessReplaceAll && nbProcessed > 0) // All the notification of modification (SCN_MODIFIED) were removed during the operations, so we set modified status true here
|
||||||
{
|
{
|
||||||
(*_ppEditView)->getCurrentBuffer()->setModifiedStatus(true);
|
Buffer* buf = (*_ppEditView)->getCurrentBuffer();
|
||||||
::SendMessage(_hParent, NPPM_INTERNAL_DOCMODIFIEDBYREPLACEALL, 0, 0);
|
buf->setModifiedStatus(true);
|
||||||
|
::SendMessage(_hParent, NPPM_INTERNAL_DOCMODIFIEDBYREPLACEALL, reinterpret_cast<WPARAM>(buf), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue