From e22f3adce3febfcf393dd955ff4fbd7c9450eae4 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/PerLine.cxx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/PerLine.cxx') diff --git a/src/PerLine.cxx b/src/PerLine.cxx index a19c117bc..21d02af72 100644 --- a/src/PerLine.cxx +++ b/src/PerLine.cxx @@ -202,15 +202,19 @@ int LineMarkers::AddMark(int line, int markerNum, int lines) { return handleCurrent; } -void LineMarkers::DeleteMark(int line, int markerNum, bool all) { +bool LineMarkers::DeleteMark(int line, int markerNum, bool all) { + bool someChanges = false; if (markers.Length() && (line >= 0) && (line < markers.Length()) && markers[line]) { if (markerNum == -1) { + someChanges = true; delete markers[line]; markers[line] = NULL; } else { bool performedDeletion = markers[line]->RemoveNumber(markerNum); + someChanges = someChanges || performedDeletion; while (all && performedDeletion) { performedDeletion = markers[line]->RemoveNumber(markerNum); + someChanges = someChanges || performedDeletion; } if (markers[line]->Length() == 0) { delete markers[line]; @@ -218,6 +222,7 @@ void LineMarkers::DeleteMark(int line, int markerNum, bool all) { } } } + return someChanges; } void LineMarkers::DeleteMarkFromHandle(int markerHandle) { -- cgit v1.2.3