From 45c7e78024d4a25e71a23c95da32a9fdc274d265 Mon Sep 17 00:00:00 2001 From: harrybharry Date: Thu, 17 Jul 2008 15:47:26 +0000 Subject: [PATCH] Fix delay because of folding tests. git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository@295 f5eea248-9336-0410-98b8-ebc06183d4e3 --- PowerEditor/src/Notepad_plus.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/PowerEditor/src/Notepad_plus.cpp b/PowerEditor/src/Notepad_plus.cpp index ad2055b85..468471312 100644 --- a/PowerEditor/src/Notepad_plus.cpp +++ b/PowerEditor/src/Notepad_plus.cpp @@ -1799,22 +1799,33 @@ BOOL Notepad_plus::notify(SCNotification *notification) case SCN_MODIFIED: { - if ((notification->modificationType & SC_MOD_DELETETEXT) || (notification->modificationType & SC_MOD_INSERTTEXT)) + static bool prevWasEdit = false; + if (notification->modificationType & (SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT)) { + prevWasEdit = true; _linkTriggered = true; _isDocModifing = true; ::InvalidateRect(notifyView->getHSelf(), NULL, TRUE); } if (notification->modificationType & SC_MOD_CHANGEFOLD) { - notifyView->foldChanged(notification->line, - notification->foldLevelNow, notification->foldLevelPrev); + if (prevWasEdit) { + notifyView->foldChanged(notification->line, + notification->foldLevelNow, notification->foldLevelPrev); + prevWasEdit = false; + } + } + else + if (!(notification->modificationType & (SC_MOD_DELETETEXT | SC_MOD_INSERTTEXT))) + { + prevWasEdit = false; } } break; case SCN_SAVEPOINTREACHED: - case SCN_SAVEPOINTLEFT: { + case SCN_SAVEPOINTLEFT: + { Buffer * buf = 0; if (isFromPrimary) { buf = _mainEditView.getCurrentBuffer(); @@ -2159,7 +2170,7 @@ BOOL Notepad_plus::notify(SCNotification *notification) } - case SCN_MARGINCLICK: + case SCN_MARGINCLICK: { if (notification->nmhdr.hwndFrom == _mainEditView.getHSelf()) switchEditViewTo(MAIN_VIEW); @@ -2228,7 +2239,7 @@ BOOL Notepad_plus::notify(SCNotification *notification) break; } - case TTN_GETDISPINFO: + case TTN_GETDISPINFO: { LPTOOLTIPTEXT lpttt;