diff options
| author | nyamatongwe <unknown> | 2010-07-07 03:23:11 +0000 | 
|---|---|---|
| committer | nyamatongwe <unknown> | 2010-07-07 03:23:11 +0000 | 
| commit | 0b6e7242716a538874d39d2e05d02182d456de88 (patch) | |
| tree | bef1c6a09a5d08fabab930f9347cbc37eb1c1e68 /src/PerLine.cxx | |
| parent | bfbb9c2448820b005e463fc30a684b724bda5ec5 (diff) | |
| download | scintilla-mirror-0b6e7242716a538874d39d2e05d02182d456de88.tar.gz | |
Redraw when annotations change.
DeleteAllMarks will only cause a modification notification when a mark was actually deleted.
Diffstat (limited to 'src/PerLine.cxx')
| -rw-r--r-- | src/PerLine.cxx | 7 | 
1 files changed, 6 insertions, 1 deletions
| 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) { | 
