From 0b6e7242716a538874d39d2e05d02182d456de88 Mon Sep 17 00:00:00 2001 From: nyamatongwe Date: Wed, 7 Jul 2010 03:23:11 +0000 Subject: Redraw when annotations change. DeleteAllMarks will only cause a modification notification when a mark was actually deleted. --- src/Document.cxx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/Document.cxx') diff --git a/src/Document.cxx b/src/Document.cxx index bc3ae0979..08d35a893 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -192,12 +192,16 @@ void Document::DeleteMarkFromHandle(int markerHandle) { } void Document::DeleteAllMarks(int markerNum) { + bool someChanges = false; for (int line = 0; line < LinesTotal(); line++) { - static_cast(perLineData[ldMarkers])->DeleteMark(line, markerNum, true); + if (static_cast(perLineData[ldMarkers])->DeleteMark(line, markerNum, true)) + someChanges = true; + } + if (someChanges) { + DocModification mh(SC_MOD_CHANGEMARKER, 0, 0, 0, 0); + mh.line = -1; + NotifyModified(mh); } - DocModification mh(SC_MOD_CHANGEMARKER, 0, 0, 0, 0); - mh.line = -1; - NotifyModified(mh); } int Document::LineFromHandle(int markerHandle) { @@ -1430,6 +1434,8 @@ void Document::AnnotationSetText(int line, const char *text) { void Document::AnnotationSetStyle(int line, int style) { static_cast(perLineData[ldAnnotation])->SetStyle(line, style); + DocModification mh(SC_MOD_CHANGEANNOTATION, LineStart(line), 0, 0, 0, line); + NotifyModified(mh); } void Document::AnnotationSetStyles(int line, const unsigned char *styles) { -- cgit v1.2.3