void TextFrame::OnTextModified(wxStyledTextEvent& event) { wxStyledTextCtrl* txt = getCurrentTextCtrl(); if(txt) { int line = txt->LineFromPosition(event.GetPosition()), lines = event.GetLinesAdded(), linecount = txt->GetLineCount(); getDocument()->setModified(txt->IsModified()); if(lines!=0) { // Add or remove lines updateLineNbMargin(); _fastFindLine->SetRange(1, linecount); // Bookmarks if(getDocument()->getBookmarks().addLines(line, lines)) UpdateBookmarkPanel(); // Markers _markbar->SetMax(linecount); _markbar->MoveMarkers(line, lines); } } event.Skip(); }
void CodeEdit::OnModified(wxStyledTextEvent& event) { event.Skip(); int linesAdded = event.GetLinesAdded(); // If we're inserting new lines before a line, so we need to move the // markers down. STCntilla doesn't do this automatically for the current line. if (linesAdded > 0) { unsigned int position = event.GetPosition(); unsigned int line = LineFromPosition(position); unsigned int lineStartPosition = PositionFromLine(line); if (position == lineStartPosition) { int markers = MarkerGet(line); // Delete all of the markers from the line. for (int i = 0; i < 32; ++i) { MarkerDelete(line, i); } // Add the markers back on the new line. MarkerAddSet(line + linesAdded, markers); } } }